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

[c#WinForm]使用动态创建的按钮从另一个表单向listbox添加文本,c#,forms,listbox,C#,Forms,Listbox,我有以下表格: MainKozep: 包含tableLayoutPanel,其中包含: 面板-名为“panel1”(加载了选项卡(*)表单) 列表框-名为“tetels” 列表框-名为“tetels_ar” 将Tab1-Tab10加载至面板1的按钮 选项卡1: 有动态创建的按钮(来自数据库),每个按钮都是可单击的(使用button.Click+=delegate{}) 我尝试了很多解决方案,但都没有成功,所以我的问题是: 当在Tab(*)中单击其中一个按钮时,需要将确切的变量写入tete

我有以下表格:

MainKozep:

  • 包含tableLayoutPanel,其中包含:
    • 面板-名为“panel1”(加载了选项卡(*)表单)
    • 列表框-名为“tetels”
    • 列表框-名为“tetels_ar”
  • 将Tab1-Tab10加载至面板1的按钮
选项卡1:

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

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

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

谢谢你的帮助,
Dris

如果动态创建了tetels和tetels_ar,则使用类范围实例化它们。然后,从buttonClick处理程序运行buttonClick,如下所示。在这里,我用一个字符串更新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);
    }
如果使用许多不同的ListView,可以使用下面的代码动态添加。为每个动态创建的按钮指定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);

    }

tetels和tetels是静态的,按钮是动态创建的。示例:若我单击Form2上的按钮中的一个,这将向Listbox(名为tetels)写入一个字符串-witch位于Form1上