C#實現PictureBox控件的動態添加及在每個圖像左上角添加一個復選框


編程工具:VS2005

實現方法:

1、前提,在窗體中添加一個FlowLayoutPanel容器(Name="pnlTest"),用來存放動態添加的PictureBox控件。(注:之所以用FlowLayoutPanel容器,是為了方便圖像控件的自動排列,這樣就不用算每個圖像控件的位置了,嘿嘿~偷個懶)

2、動態生成PictureBox控件的Code塊:

        /// <summary>
        /// 動態添加圖像控件
        /// </summary>
        private void AddPicControl()
        {
            PictureBox pic = new PictureBox();
            //設置圖像相關屬性及事件
            pic.Name = string.Format("pic{0}", this.pnlTest.Controls.Count);//Name屬性
            pic.Width = 200; //Size-Width
            pic.Height = 200; //Size-Height
            pic.BorderStyle = BorderStyle.FixedSingle;//邊框樣式:單線邊
            pic.SizeMode = PictureBoxSizeMode.Zoom;//設置圖像SizeMode=Zoom
            pic.Cursor = Cursors.Hand;//鼠標懸浮樣式:小手
            pic.Click += this.picBox_Click;//事件:單擊控件
            pic.DoubleClick += this.picBox_DoubleClick;//事件:雙擊控件
            this.AddCheckBoxControlIntoPicBox(pic);//添加復選框
            pic.ContextMenuStrip = this.cmsTest;//綁定右鍵菜單
            //向容器中添加一個圖像控件
            this.pnlTest.Controls.Add(pic);
        }

 

3、有時候為了實現這樣的效果:選擇容器內的多張圖像並直觀的顯示已選中的圖像。

  之前一直沒有找到合適的顯示方法,曾用過圖像邊框樣式及顏色來區分,但是效果非常不好。

  后來在某個朋友的提醒下,突然恍然大悟:我可以將圖像控件作為一個容器,然后在這個容器上添加一個復選框控件。

  於是,就開始研究起來,下面附上在圖像控件中添加復選框控件的Code塊:

        /// <summary>
        /// 在圖像控件中添加CheckBox控件
        /// </summary>
        private void AddCheckBoxControlIntoPicBox(PictureBox p_PicBox)
        {
            CheckBox chkBox = new CheckBox();
            chkBox.Name = string.Format("chkBoxOf{0}", p_PicBox.Name);
            chkBox.Text = string.Empty;
            chkBox.AutoSize = true;//若不設置此屬性,會出現比較多的白色邊框,比較難看
            chkBox.Location = new System.Drawing.Point(-1, -1);//相對位置:左上角

            p_PicBox.Controls.Add(chkBox);
        }

 


小弟才疏學淺,難免會有錯誤,若您發現了請及時指出,謝謝!

寫此文只為記錄編程過程中積攢的思想與經驗,若您有更好的思路希望您能給我留言,謝謝啦!~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM