解析C#自訂控制項的製作與使用執行個體的詳解

來源:互聯網
上載者:User

上篇:控制項製作
本例是製作一個簡單的自訂控制項,然後用一個簡單的測試程式,對於初學者來說,本例子比較簡單,只能起到拋石引玉的效果。
我也是在學習當中,今後會將自己所學的逐步寫出來和大家交流共用。
第一步:建立一個控制項陳列庫項目: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個自訂的控制項到測試視窗第四步 測試程式 單擊“開啟”按鈕:選擇一個圖片,開啟,顯示該圖:測試成功。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.