C#分屏控制項用法執行個體

來源:互聯網
上載者:User

標籤:.com   dev   har   location   one   index   分享   initial   程式設計   

本文執行個體中的自訂類PictureBox繼承於UserControl,最終實現簡單的分屏功能。分享給大家供大家參考之用。具體實現代碼如下:

public partial class PictureControl : UserControl{    public event MouseEventHandler PicControl_DoubleClick;    private int picNum;    /// <summary>    /// 螢幕個數    /// </summary>    public int PicNum    {      get { return picNum; }      set      {        if (value == 4 || value == 6 || value == 9 || value == 12 || value == 16 || value == 20 || value == 25)//只能是4、6、9、12、16、20、25        {          picNum = value;          this.SetPictureBox(this.picNum);        }        else        {          this.PicNum = 12;          this.SetPictureBox(this.picNum);        }      }    }    public PictureControl()    {      this.picNum = 4;      InitializeComponent();      this.SetPictureBox(this.picNum);    }    /// <summary>    /// 根據個數布局PictureBox    /// </summary>    /// <param name="num"></param>    private void SetPictureBox(int num)    {      this.Controls.Clear();      Size size = this.Size;      switch (num)      {        case 4: this.SetPictureBox(2, 2, size); break;        case 6: this.SetPictureBox(2, 3, size); break;        case 9: this.SetPictureBox(3, 3, size); break;        case 12: this.SetPictureBox(3, 4, size); break;        case 16: this.SetPictureBox(4, 4, size); break;        case 20: this.SetPictureBox(4, 5, size); break;        case 25: this.SetPictureBox(5, 5, size); break;      }    }    /// <summary>    /// 布局pictureBox    /// </summary>    /// <param name="x">幾行</param>    /// <param name="y">幾列</param>    /// <param name="size">當前控制項的大小</param>    private void SetPictureBox(int x, int y,Size size)    {      int num = 0;      for (int i = 0; i < x; i++)      {        for (int j = 0; j < y; j++)        {          PictureBox pic = new PictureBox();          pic.SizeMode = PictureBoxSizeMode.Zoom;                     //設定自動縮放          pic.BackColor = Color.White;                          //設定背景顏色          pic.Location = new Point((size.Width / y) * j, (size.Height / x) * i);     //設定Location          pic.BorderStyle = BorderStyle.FixedSingle;                   //設定邊框          pic.MouseDoubleClick += new MouseEventHandler(pic_MouseDoubleClick);      //訂閱控制項雙擊事件          pic.Size = new Size(size.Width / y, size.Height / x);              //設定控制項大小          pic.Tag = num;                                 //設定控制項編號即螢幕序號          this.Controls.Add(pic);                             //添加          num++;        }      }    }    void pic_MouseDoubleClick(object sender, MouseEventArgs e)    {      if (this.PicControl_DoubleClick != null)      {        this.PicControl_DoubleClick(sender, e);//將動態添加的控制項的雙擊事件 傳向控制項體外。      }    }    private void PictureControl_SizeChanged(object sender, EventArgs e)    {      this.SetPictureBox(this.picNum);    }    private PictureBox GetPicByIndex(int index)    {      foreach (Control c in this.Controls)      {        if (Convert.ToInt32(c.Tag) == index)        {          return (PictureBox)c;        }      }      PictureBox p = new PictureBox();      p.Tag = -1;      return p;    }    /// <summary>    /// 根據螢幕序號設定映像    /// </summary>    /// <param name="index">螢幕號</param>    /// <param name="img">映像</param>    public void SetImageByIndex(int index, Image img)    {      GetPicByIndex(index).Image = img;    }}

希望本文所述執行個體對大家C#程式設計有所協助。

除聲明外, 跑步客文章均為原創,轉載請以連結形式標明本文地址
  C#分屏控制項用法執行個體

本文地址:  http://www.paobuke.com/develop/c-develop/pbk23600.html






相關內容C#實現的ACCESS資料庫操作類完整執行個體IIS下調用認證出現異常的解決方案 (C#)C#實現win10 uwp 右擊浮出窗在點擊位置深入解析C#設計模式編程中對建造者模式的運用
輕鬆學習C#的讀寫操作C#實現把txt文本資料快速讀取到excel中C#處理Json字串執行個體分析C#中WinForm程式退出方法技巧總結

C#分屏控制項用法執行個體

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.