解析C#自定義控件的制作與使用實(shí)例的詳解
更新時(shí)間:2013年05月22日 18:23:57 作者:
本篇文章是對(duì)C#中自定義控件的制作與使用實(shí)例進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
上篇:控件制作
本例是制作一個(gè)簡(jiǎn)單的自定義控件,然后用一個(gè)簡(jiǎn)單的測(cè)試程序,對(duì)于初學(xué)者來(lái)說(shuō),本例子比較簡(jiǎn)單,只能起到拋石引玉的效果。
我也是在學(xué)習(xí)當(dāng)中,今后會(huì)將自己所學(xué)的逐步寫(xiě)出來(lái)和大家交流共享。
第一步:新建一個(gè)控件庫(kù)項(xiàng)目:myControl

第二步:從工具箱里面拖動(dòng)1個(gè)PictureBox、1個(gè)Button、6個(gè)Lable控件到用戶界面上,布局如下:

如上圖,設(shè)置pictureBox的Name為picBox,背景為白色,Button的Name為btnOpen,另外靠左的三個(gè)Lable的Text屬性分別為:文件名稱,文件大小,文件尺寸,靠右的三個(gè)Lable的Name分別為:lblName, lblLength, lblSize.
第三步:添加處理程序代碼
在btnOpen的Click事件寫(xiě)入代碼,打開(kāi)一個(gè)打開(kāi)文件對(duì)話框,選擇一個(gè)圖形文件,打開(kāi)并將它顯示在picBox上。
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();
FileInfo fiPicInfo = new 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;已超過(guò)最大限制的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();
}
}
第四步:測(cè)試控件
按F5啟動(dòng)調(diào)試,彈出如下窗體:
單擊“打開(kāi)”按鈕,彈出打開(kāi)文件對(duì)話框:
單擊“選擇項(xiàng)”,彈出如下對(duì)話框:
單擊“瀏覽”,彈出打開(kāi)對(duì)話框:
選中控件文件 mybutton.dll ,單擊“打開(kāi)”按鈕,回到自定義工具箱,系統(tǒng)會(huì)默認(rèn)把你剛才選中的控件打上勾。
返回vs編輯器,可看到工具箱中多出了一個(gè)UserControl:
第四步 測(cè)試程序
單擊“打開(kāi)”按鈕:
選擇一個(gè)圖片,打開(kāi),顯示該圖:
本例是制作一個(gè)簡(jiǎn)單的自定義控件,然后用一個(gè)簡(jiǎn)單的測(cè)試程序,對(duì)于初學(xué)者來(lái)說(shuō),本例子比較簡(jiǎn)單,只能起到拋石引玉的效果。
我也是在學(xué)習(xí)當(dāng)中,今后會(huì)將自己所學(xué)的逐步寫(xiě)出來(lái)和大家交流共享。
第一步:新建一個(gè)控件庫(kù)項(xiàng)目:myControl

第二步:從工具箱里面拖動(dòng)1個(gè)PictureBox、1個(gè)Button、6個(gè)Lable控件到用戶界面上,布局如下:

如上圖,設(shè)置pictureBox的Name為picBox,背景為白色,Button的Name為btnOpen,另外靠左的三個(gè)Lable的Text屬性分別為:文件名稱,文件大小,文件尺寸,靠右的三個(gè)Lable的Name分別為:lblName, lblLength, lblSize.
第三步:添加處理程序代碼
在btnOpen的Click事件寫(xiě)入代碼,打開(kāi)一個(gè)打開(kāi)文件對(duì)話框,選擇一個(gè)圖形文件,打開(kāi)并將它顯示在picBox上。
復(fù)制代碼 代碼如下:
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();
FileInfo fiPicInfo = new 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;已超過(guò)最大限制的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();
}
}
第四步:測(cè)試控件
按F5啟動(dòng)調(diào)試,彈出如下窗體:

單擊“打開(kāi)”按鈕,彈出打開(kāi)文件對(duì)話框:
選擇一張圖片,單擊“打開(kāi)”,可以看到在picBox上顯示了打開(kāi)的圖片:

第五步:查看成生的控件文件,到該項(xiàng)目文件目錄下的bin->debug中可找到。
下篇:控件測(cè)試
第一步:新建一個(gè)C# Windows 應(yīng)用程序,名為T(mén)estMyButton.
第二步:增加自定義的用戶控件
右鍵單擊工具箱中任意一個(gè)控件,彈出右鍵菜單如下:

單擊“選擇項(xiàng)”,彈出如下對(duì)話框:

單擊“瀏覽”,彈出打開(kāi)對(duì)話框:

選中控件文件 mybutton.dll ,單擊“打開(kāi)”按鈕,回到自定義工具箱,系統(tǒng)會(huì)默認(rèn)把你剛才選中的控件打上勾。

返回vs編輯器,可看到工具箱中多出了一個(gè)UserControl:

第三步:拖動(dòng)1個(gè)自定義的控件到測(cè)試窗口

第四步 測(cè)試程序

單擊“打開(kāi)”按鈕:

選擇一個(gè)圖片,打開(kāi),顯示該圖:

測(cè)試成功。
您可能感興趣的文章:
相關(guān)文章
淺談C#下winform和JS的互相調(diào)用和傳參(webbrowser)
下面小編就為大家?guī)?lái)一篇淺談C#下winform和JS的互相調(diào)用和傳參(webbrowser)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-12-12淺談C#單例模式的實(shí)現(xiàn)和性能對(duì)比
這篇文章主要介紹了淺談C#單例模式的實(shí)現(xiàn)和性能對(duì)比的相關(guān)資料,詳細(xì)的介紹了6種實(shí)現(xiàn)方式,需要的朋友可以參考下2017-09-09C#獲取進(jìn)程的主窗口句柄的實(shí)現(xiàn)方法
C#獲取進(jìn)程的主窗口句柄的實(shí)現(xiàn)方法,需要的朋友可以參考一下2013-04-04