[c#WinForm]使用动态创建的按钮从另一个表单向列表框添加文本

时间:2016-08-27 14:01:24

标签: c# forms listbox

我有这样的形式:

MainKozep:

  • 包含tableLayoutPanel女巫包含:
    • 面板 - 命名为“panel1”(加载Tab(*)Form)
    • 列表框 - 名为“tetels”
    • 列表框 - 名为“tetels_ar”
  • 将Tab1-Tab10加载到panel1
  • 的按钮

TAB1:

有动态创建的按钮(来自数据库),每个按钮都是可点击的(使用button.Click + = delegate {})

我尝试了很多解决方案,但没有奏效,所以我的问题是:

当其中一个按钮单击Tab(*)时,需要将精确变量写入tetels Listbox并将另一个变量写入tetels_ar Listbox。

感谢您的帮助, DRIS

1 个答案:

答案 0 :(得分: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);

    }