溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

C#實(shí)現(xiàn)創(chuàng)建自定義控件

發(fā)布時(shí)間:2020-10-28 16:41:04 來源:億速云 閱讀:201 作者:Leah 欄目:開發(fā)技術(shù)

C#實(shí)現(xiàn)創(chuàng)建自定義控件?針對這個(gè)問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。

1.創(chuàng)建自定義控件

C#實(shí)現(xiàn)創(chuàng)建自定義控件

2.添加控件,組合成一個(gè)新的控件

自定義控件功能:打開一張圖片,將圖片展示在pictureBox控件中,并將圖片的名稱、大小、尺寸顯示出來

控件如下:

pictureBox1:命名為picBox

label1~label6 :左邊三個(gè)顯示文字,右邊三個(gè)命名為:lblName lblLength lblSize

button1:命名為btnOpen

C#實(shí)現(xiàn)創(chuàng)建自定義控件

代碼如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
 
namespace WindowsFormsControlLibrary1
{
  public partial class UserControl1: UserControl
  {
    public UserControl1()
    {
      InitializeComponent();
    }
 
    private void button1_Click(object sender, EventArgs e)
    {
      OpenFileDialog ofdPic = new OpenFileDialog();
      ofdPic.Filter = "JPG(*.JPG;*.JPEG);gif文件(*.GIF);PNG(*.PNG)|*.jpg;*.jpeg;*.gif;*.png";
      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();
      }
 
    }
  }
}

點(diǎn)擊【解決方案】,右鍵彈出窗口,點(diǎn)擊【生成解決方案】

至此,自定義控件的創(chuàng)建已經(jīng)完成!

生成的控件路徑在Debug文件夾下,dll文件

3.自定義控件測試

新建windows窗體應(yīng)用程序

發(fā)現(xiàn)在左邊的控件工具欄中并沒有剛剛的自定義控件,不要急??!

選擇工具下的【選擇工具箱項(xiàng)】

C#實(shí)現(xiàn)創(chuàng)建自定義控件

瀏覽,選擇dll文件路徑,注意路徑中不能包含中文字符,切記!否則會(huì)出錯(cuò)!

添加成功后,會(huì)發(fā)現(xiàn)工具箱中出現(xiàn)了剛剛定義的控件。

C#實(shí)現(xiàn)創(chuàng)建自定義控件

測試結(jié)果:

C#實(shí)現(xiàn)創(chuàng)建自定義控件

關(guān)于C#實(shí)現(xiàn)創(chuàng)建自定義控件問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI