- 新建一个windows自定义控件的项目
- 在界面上拖入:一个picturebox1 , 6个label,1个button
picturebox1命名为picBox,左边三个label的text改为:文件名称、文件大小、文件尺寸;右边的三个label的name改为lblName、lblLength、lblSize
button的name属性改为btnOpen.
代码如下:
namespace 自定义控件
{
public partial class UserControl1: UserControl
{
public UserControl1()
{
InitializeComponent();
}
private void btnOpen_Click(object sender, EventArgs e)
{
OpenFileDialog ofdPic = new OpenFileDialog();
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();
System.IO.FileInfo fiPicInfo = new System.IO.FileInfo(sPicPaht);
long lPicLong = fiPicInfo.Length / 1024;
string sPicName = fiPicInfo.Name;
string sPicDirectory = fiPicInfo.Directory.ToString();
string sPicDirectoryPath = fiPicInfo.DirectoryName;
Bitmap bmPic = new Bitmap(sPicPaht);
if (lPicLong > 400)
{
MessageBox.Show("此文件大小為" + lPicLong + "K;已超過最大限制的K范圍!");
}
else
{
Point ptLoction = new Point(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();
}
}
}
}
3、鼠标右键点击项目名,重新生成下
4、新建一个常规winform界面项目,打开自定义控件的文件,找到控件项目想的Debug里面的dll文件,拖进当前项目的工具箱中
5、在当前的界面中就可以调用这个控件了
参考链接:https://blog.youkuaiyun.com/xiongxuanwen/article/details/2605109
C#自定义控件制作与使用实例总结
引言
在软件开发过程中,控件作为用户界面的基本构件,扮演着至关重要的角色。C#作为一门流行的面向对象编程语言,提供了丰富的原生控件供开发者使用。然而,随着项目需求的日益复杂,原生控件往往无法满足特定的功能需求或用户体验要求。这时,开发自定义控件成为了一种有效的解决方案。本文通过一个详细的实例,介绍了如何在C#中创建和使用自定义控件,旨在帮助开发者扩展.NET Framework的基础控件功能,提升应用程序的个性化和功能性。
一、自定义控件的概念与意义
自定义控件是开发者根据特定需求创造的控件,旨在提供比原生控件更强大的功能、更好的用户体验或满足特定的业务逻辑。与原生控件相比,自定义控件具有更高的灵活性和可扩展性,可以根据项目需求进行定制,包括外观、行为以及与用户的交互方式。
在C#中,创建自定义控件通常涉及继承自UserControl
类或其他现有控件类,并通过添加属性、方法和事件来扩展其功能。自定义控件不仅可以提高代码的复用性,还能简化用户界面的开发过程,使开发者能够更专注于业务逻辑的实现。
二、创建自定义控件的步骤
1. 新建控件库项目
首先,需要在Visual Studio中新建一个Windows窗体控件库项目。这个项目将专门用于开发和存储自定义控件。在创建项目时,选择“.NET Framework”作为目标框架,以确保与大多数Windows应用程序的兼容性。
2. 设计控件界面
在控件库项目中,从工具箱中拖拽所需的控件到设计界面上。本例中,我们添加了一个PictureBox
控件用于显示图片,六个Label
控件用于显示文件信息(文件名称、文件大小、文件尺寸),以及一个Button
控件用于触发文件选择对话框。
- 将
PictureBox
命名为picBox
,并设置其背景为白色。 - 将左侧的三个
Label
控件的Text
属性分别设置为“文件名称”、“文件大小”、“文件尺寸”。 - 将右侧的三个
Label
控件的Name
属性分别设置为lblName
、lblLength
、lblSize
,以便在代码中引用。 - 将
Button
控件的Name
属性设置为btnOpen
,Text
属性设置为“打开”。
3. 编写控件逻辑
在控件的代码文件中,需要为Button
控件的Click
事件编写处理程序。这个处理程序将负责打开文件选择对话框,读取用户选择的图片文件,并在PictureBox
中显示该图片。同时,它还会更新Label
控件的文本,以显示图片的文件名、大小和尺寸。
private void btnOpen_Click(object sender, EventArgs e)
{
OpenFileDialog ofdPic = new OpenFileDialog();
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();
System.IO.FileInfo fiPicInfo = new System.IO.FileInfo(sPicPaht);
long lPicLong = fiPicInfo.Length / 1024;
string sPicName = fiPicInfo.Name;
Bitmap bmPic = new Bitmap(sPicPaht);
if (lPicLong > 400)
{
MessageBox.Show("此文件大小為" + lPicLong + "K;已超過最大限制的K范圍!");
}
else
{
Point ptLoction = new Point(bmPic.Size);
if (ptLoction.X > picBox.Size.Width || ptLoction.Y > picBox.Size.Height)
{
picBox.SizeMode = PictureBoxSizeMode.Zoom;
}
else
{
picBox.SizeMode = PictureBoxSizeMode.CenterImage;
}
}
picBox.Image = new Bitmap(sPicPaht); // 直接加载图片,而非使用LoadAsync
lblName.Text = sPicName;
lblLength.Text = lPicLong.ToString() + " KB";
lblSize.Text = bmPic.Size.Width.ToString() + "×" + bmPic.Size.Height.ToString();
}
}
4. 重新生成控件库
在完成控件的设计和编码后,需要右键点击项目名,选择“重新生成”以编译控件库。这一步骤将生成包含自定义控件的DLL文件,该文件后续将被引用到Windows窗体应用程序中。
三、在Windows窗体应用程序中使用自定义控件
1. 新建Windows窗体应用程序项目
在Visual Studio中新建一个Windows窗体应用程序项目。这个项目将用于测试和使用我们之前创建的自定义控件。
2. 添加自定义控件到工具箱
打开自定义控件库项目的bin\Debug
文件夹,找到生成的DLL文件。在Windows窗体应用程序项目中,右键点击工具箱中的任意位置,选择“选择项”。在弹出的对话框中,点击“浏览”按钮,找到并选中自定义控件的DLL文件。点击“打开”后,自定义控件将出现在工具箱中。
3. 拖拽自定义控件到窗体
从工具箱中拖拽自定义控件到Windows窗体的设计界面上。此时,窗体上将显示一个包含PictureBox
、六个Label
和一个Button
的自定义控件。
4. 运行并测试应用程序
按F5运行Windows窗体应用程序。单击自定义控件上的“打开”按钮,选择一个图片文件。如果文件大小不超过400KB,图片将在PictureBox
中显示,并且Label
控件将更新以显示图片的文件名、大小和尺寸。
四、总结与展望
通过本例,我们详细介绍了如何在C#中创建和使用自定义控件。自定义控件的开发不仅提高了代码的复用性和应用程序的个性化程度,还简化了用户界面的开发过程。在实际项目中,自定义控件可以根据具体需求进行灵活定制,满足各种复杂的业务场景。
未来,随着软件开发技术的不断发展,自定义控件的开发将更加便捷和高效。开发者可以利用更先进的工具和技术来创建功能更强大、用户体验更好的自定义控件。同时,自定义控件的复用性和共享性也将得到进一步提升,促进软件开发社区的共同进步。
总之,自定义控件的开发是提升C#应用程序功能和用户体验的重要手段。通过不断学习和实践,开发者可以掌握更多关于自定义控件开发的技巧和方法,为软件开发事业贡献自己的力量。