C# 自定义控件制作和使用实例(winform)

摘要:
“);否则{PointptLocation=newPoint;如果{picBox.SizeMode=PictureBoxSizeMode.Zoom;}否则{picBox.SizeMode=PictureBoxSizeMode.CenterImage;}}picBox。LoadAsync;lbl名称。文本=sPicName;lblLength.Text=lPicLong。ToString()+“KB”;lblSize.Text=bmPic.Size.Width。ToString()+“×”+bmPic。大小身高ToString();}}第4步:按F5键开始调试测试控件,并弹出以下窗口:单击“打开”打开文件对话框:选择一张图片并点击“打开”您可以看到打开的图像显示在picBox上:第5步:查看生成的控件文件,该文件可以在项目文件目录下的bin-˃debug中找到。回到vs编辑器,您可以看到工具箱中还有一个UserControl:步骤3:将用户定义的控件拖到测试窗口步骤4:单击测试程序中的“打开”按钮:选择一张图片,打开它,它显示测试成功。
C#自定义用户控件

此处为转载文章,用于记录自我学习过程,原文链接地址http://blog.csdn.net/xiongxuanwen/article/details/2605109

上篇:控件制作
本例是制作一个简单的自定义控件,然后用一个简单的测试程序,对于初学者来说,本例子比较简单,只能起到抛石引玉的效果。
我也是在学习当中,今后会将自己所学的逐步写出来和大家交流共享。
第一步:新建一个控件库项目:myControl
C# 自定义控件制作和使用实例(winform)第1张
第二步:从工具箱里面拖动1个PictureBox、1个Button、6个Lable控件到用户界面上,布局如下:
C# 自定义控件制作和使用实例(winform)第2张
如上图,设置pictureBox的Name为picBox,背景为白色,Button的Name为btnOpen,另外靠左的三个Lable的Text属性分别为:文件名称,文件大小,文件尺寸,靠右的三个Lable的Name分别为:lblName, lblLength, lblSize.
第三步:添加处理程序代码
在btnOpen的Click事件写入代码,打开一个打开文件对话框,选择一个图形文件,打开并将它显示在picBox上。
private void btnOpen_Click(objectsender, EventArgs e)
{
OpenFileDialog ofdPic = newOpenFileDialog();
ofdPic.Filter = "JPG(*.JPG;*.JPEG);gif文件(*.GIF)|*.jpg;*.jpeg;*.gif";
ofdPic.FilterIndex = 1;
ofdPic.RestoreDirectory = true;
ofdPic.FileName = "";
if (ofdPic.ShowDialog() ==DialogResult.OK)
{
string sPicPaht =ofdPic.FileName.ToString();
FileInfo fiPicInfo = newFileInfo(sPicPaht);
long lPicLong = fiPicInfo.Length / 1024;
string sPicName =fiPicInfo.Name;
string sPicDirectory =fiPicInfo.Directory.ToString();
string sPicDirectoryPath =fiPicInfo.DirectoryName;
Bitmap bmPic = newBitmap(sPicPaht);
if (lPicLong > 400)
{
MessageBox.Show("此文件大小為" + lPicLong + "K;已超過最大限制的K范圍!");
}
else{
Point ptLoction = newPoint(bmPic.Size);
if (ptLoction.X > picBox.Size.Width || ptLoction.Y >picBox.Size.Height)
{
picBox.SizeMode =PictureBoxSizeMode.Zoom;
}
else{
picBox.SizeMode =PictureBoxSizeMode.CenterImage;
}
}
picBox.LoadAsync(sPicPaht);
lblName.Text =sPicName;
lblLength.Text = lPicLong.ToString() + "KB";
lblSize.Text = bmPic.Size.Width.ToString() + "×" +bmPic.Size.Height.ToString();
}
}
第四步:测试控件
按F5启动调试,弹出如下窗体:
C# 自定义控件制作和使用实例(winform)第3张
单击“打开”按钮,弹出打开文件对话框:
选择一张图片,单击“打开”,可以看到在picBox上显示了打开的图片:
C# 自定义控件制作和使用实例(winform)第4张
第五步:查看成生的控件文件,到该项目文件目录下的bin->debug中可找到。
下篇:控件测试
第一步:新建一个C# Windows 应用程序,名为TestMyButton.
第二步:增加自定义的用户控件
右键单击工具箱中任意一个控件,弹出右键菜单如下:
C# 自定义控件制作和使用实例(winform)第5张
单击“选择项”,弹出如下对话框:
C# 自定义控件制作和使用实例(winform)第6张
单击“浏览”,弹出打开对话框:
C# 自定义控件制作和使用实例(winform)第7张
选中控件文件mybutton.dll,单击“打开”按钮,回到自定义工具箱,系统会默认把你刚才选中的控件打上 勾。
C# 自定义控件制作和使用实例(winform)第8张
返回vs编辑器,可看到工具箱中多出了一个UserControl:
C# 自定义控件制作和使用实例(winform)第9张
第三步:拖动1个自定义的控件到测试窗口
C# 自定义控件制作和使用实例(winform)第10张
第四步 测试程序
C# 自定义控件制作和使用实例(winform)第11张
单击“打开”按钮:
C# 自定义控件制作和使用实例(winform)第12张
选择一个图片,打开,显示该图:
C# 自定义控件制作和使用实例(winform)第13张
测试成功。

免责声明:文章转载自《C# 自定义控件制作和使用实例(winform)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇C#实现树型结构TreeView节点拖拽的简单功能(转)C/C++中Sqlite使用简介下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

C#写的 电子邮件客户端(winform窗体)

如果用QQ邮箱测试需要在邮箱里面设置里面开启POPSMTP协议。并用获取授权码输入到密码框。 添加引用 using System.Net.Mail;using System.Net; 实例化:MailMessage mmsg = new MailMessage(); /// <summary> ///发送电子...

winform中 跨线程启动UI

C#的winform程序中,是不可以从UI窗口主线程之外的线程去直接操作窗口控件的。确切的解释是,不能从创建控件的线程以外的线程去处理控件的操作,比如修改属性等。以下是跨线程操作控件的报错信息:线程间操作无效: 从不是创建控件“textBox4”的线程访问它解决办法解决方案有两个:方法一,设定Control类的CheckForIllegalCrossThr...

c# winform 在一个窗体中使用另一个窗体中TextBox控件的值——解决办法

【前提】一个winform应用程序项目中,窗体B,需要使用 窗体A 中一个TextBox控件的值,进行计算等操作。 【解决方案】 1.在窗体A中定义:public static double a;// 如果你的TextBox控件有初始默认值,这里一定要改为public static double a=初始值;否则初始值默认为0 2.在窗体A添加函数: pu...

C# WinForm控件美化扩展系列之给TextBox加水印

在一些软件中,我们看到当一个输入控件(textbox)没有输入而且没有焦点的时候,会显示一些提示信息,网上有一些介绍用复合控件来实现,其实我们直接继承textbox控件也很容易实现。 下面就介绍怎样来实现这个控件。 第一步:我们建一个继承textbox的类,命名为watermaktextbox。 第二步:给这个类添加两个属性,一个是emptytexttip...

WinForm控件设计:DataGridView的行统计实现 原文来自:http://www.cnblogs.com/yyj/archive/2010/10/21/1857518.html

//**************************************////////////////////////////////         #region 显示统计列        /// <summary>        /// 显示DataGridView的统计信息        /// </summary>...

[转]WinForm DataGridView 绑定泛型List(List&amp;lt;T&amp;gt;)/ArrayList不显示的原因和解决

背景:无意间遇到了一个不大不小的问题,希望对一些遇到的人有所帮助! 一、问题 WinForm DataGridView 绑定泛型List (List<T>)/ArrayList不显示,UI 代码如下: using System; using System.Collections.Generic; using System.Data; usin...