阿宽

Nothing is more powerful than habit!
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

VS .NET(C#)如何動態創建控件

Posted on 2007-08-09 21:47  宽田  阅读(1977)  评论(2编辑  收藏  举报
VS .NET(C#)如何動態創建控件呢? 今天做了一個小程序來學習一下。

        #region 動態創建控件

        
/// <summary>
        
/// 直接創建一個沒有任何屬性TextBox控件
        
/// </summary>
        private void CreateTBControl()
        {
            
//定議一個Textbox控件
            TextBox tbTextbox = new TextBox();           
            
//動態增加控件
            this.Controls.Add(tbTextbox);
        }

顯示如下圖:   




        
/// <summary>
        
/// 創建一個帶有屬性的TextBox控件
        
/// </summary>
        private void CreateTBControlPrj()
        {
            
//定議一個Textbox控件
            TextBox tbTextboxPrj = new TextBox();
            
//設定控件的位置
            tbTextboxPrj.Location = new Point(1010);
            
//設置TextBox的name
            tbTextboxPrj.Name = "tbTxb";
            
//設置控件的Text
            tbTextboxPrj.Text = "測試";
            
//增加控件
            this.Controls.Add(tbTextboxPrj);
        }

        
//定議一個控件數組
        TextBox[] tbTexbBox;
        
private void CreateActivityTBControl()
        {
            tbTexbBox 
= new TextBox[3];
            
int iTbNum=0;
            
for (; iTbNum < 3; iTbNum++)
            {
                tbTexbBox[iTbNum] 
= new TextBox();
                
//設置TextBox的name
                tbTexbBox[iTbNum].Name = "txt" + iTbNum.ToString();
                
//設置控件的Text
                tbTexbBox[iTbNum].Text = "txt" + iTbNum.ToString();
                
//控件縱坐標向下移25
                int iYvalue = iTbNum * 25;
                
//設定控件的位置
                tbTexbBox[iTbNum].Location = new System.Drawing.Point(10, iYvalue);
                
//增加控件
                this.Controls.Add(tbTexbBox[iTbNum]);
                
//設置控件的DoubleClick事件
                tbTexbBox[iTbNum].DoubleClick += new EventHandler(tbTexbBox_DoubleClick);
            }
        }
        
/// <summary>
        
/// 控件的DoubleClick事件
        
/// </summary>
        
/// <param name="sender"></param>
        
/// <param name="e"></param>
        void tbTexbBox_DoubleClick(object sender, EventArgs e)
        {
            
//修改其中一個控件的屬性
            tbTexbBox[2].Text = "123456";
        }

        
#endregion

顯示如下圖: