2016-08-27 42 views
-2

我有這樣的形式:[C#的WinForm]從另一種形式列表框中添加文字與動態創建按鈕

MainKozep:

  • 包含TableLayoutPanel中的女巫包含:
    • 面板 - 命名「panel1」(裝有Tab(*)表格)
    • 列表框 - 名爲「tetels」
    • 列表框 - 名爲 「tetels_ar」
  • 按鈕至極負載TAB1-Tab10到PANEL1

TAB1:

有動態創建的按鈕(來自數據庫),並且每一個按鈕是可點擊(with button.Click + = delegate {})

我嘗試了很多解決方案,但沒有工作,所以我的問題是:

當其中一個按鈕在Tab(*)中單擊時,需要將精確變量寫入tetels Listbox,並將另一個變量寫入tetels_ar Listbox。

感謝您的幫助, DRIS

回答

0

如果是動態創建tetels和tetels_ar,具有類作用域的實例化它們。然後,從你的buttonClick處理程序,運行buttonClicked如下。在這裏,我更新tetels一個字符串,但你該值設置爲你想要的任何變量:如果你用了很多不同的列表視圖的

ListBox tetels = new ListBox(); 
    ListBox tetels_AR = new ListBox(); 
    private void buttonClicked(string buttonName) 
    { 
     tetels.Items.Add(buttonName); 
     tetels_AR.Items.Add("otherValue" + buttonName); 
    } 

,您可以使用下面的代碼動態添加。指定my_Button_Clicked的onClick事件爲每個動態創建的按鈕,然後:

private void buttonClicked(string listName, string variableValue) 
    { 
     ListBox l = (ListBox)Controls.Find(listName, true)[0]; 
     l.Items.Add(variableValue); 

    } 
    private void myButton_Clicked(object sender, EventArgs e) 
    { 
     Button b = (Button)sender; 
     buttonClicked("tutels", b.Name); 
     buttonClicked("tutels_AR", b.Text); 

    } 

創建按鈕這樣:

private void createButton(string name, string buttonText,string parentControlName) 
    { 
     Button b = new Button(); 
     b.Name = name; 
     b.Text = buttonText; 
     b.Click += myButton_Clicked; 
     Control c = Controls.Find(parentControlName, true)[0]; 
     c.Controls.Add(b); 

    } 
+0

tetels和tetels_ar靜態,按鈕動態創建。 例如: 如果我點擊Form2上的按鈕,這應該寫一個字符串到列表框(命名爲tetels) - 巫婆是在Form1上 – Dris

相關問題