(轉)C# 自定義使用者控制元件
C# 自定義使用者控制元件
轉:https://blog.csdn.net/xiongxuanwen/article/details/2605109
本例是製作一個簡單的自定義控制元件,然後用一個簡單的測試程式,對於初學者來說,本例子比較簡單,只能起到拋石引玉的效果。
我也是在學習當中,今後會將自己所學的逐步寫出來和大家交流共享。
第一步:新建一個控制元件庫專案:myControl
第二步:從工具箱裡面拖動1個PictureBox、1個Button、6個Lable控制元件到使用者介面上,佈局如下:
如上圖,設定pictureBox的Name為picBox,背景為白色,Button的Name為btnOpen,另外靠左的三個Lable的Text屬性分別為:檔名稱,檔案大小,檔案尺寸,靠右的三個Lable的Name分別為:lblName, lblLength, lblSize.
第三步:新增處理程式程式碼
在btnOpen的Click事件寫入程式碼,開啟一個開啟檔案對話方塊,選擇一個圖形檔案,開啟並將它顯示在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;已超過最大限制的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();
}
}
第四步:測試控制元件
按F5啟動除錯,彈出如下窗體:
單擊“開啟”按鈕,彈出開啟檔案對話方塊:
選擇一張圖片,單擊“開啟”,可以看到在picBox上顯示了開啟的圖片:
第五步:檢視成生的控制元件檔案,到該專案檔案目錄下的bin->debug中可找到。
下篇:控制元件測試
第一步:新建一個C# Windows 應用程式,名為TestMyButton.
第二步:增加自定義的使用者控制元件
右鍵單擊工具箱中任意一個控制元件,彈出右鍵選單如下:
單擊“選擇項”,彈出如下對話方塊:
單擊“瀏覽”,彈出開啟對話方塊:
選中控制元件檔案 mybutton.dll ,單擊“開啟”按鈕,回到自定義工具箱,系統會預設把你剛才選中的控制元件打上 勾。
返回vs編輯器,可看到工具箱中多出了一個UserControl:
第三步:拖動1個自定義的控制元件到測試視窗
第四步 測試程式
單擊“開啟”按鈕:
選擇一個圖片,開啟,顯示該圖:
測試成功。