1

我有一个关于某事的计算并像这样动态地创建一个表格。

 comboboxAdet.Size = new System.Drawing.Size(100, 300);
            comboboxAdet.Location = new System.Drawing.Point(515, 5);
            comboboxAdet.Margin = new Padding(2, 3, 2, 3);
            comboboxAdet.SelectedIndexChanged += new EventHandler(combobox_SelectedindexChanged);
            /**************************************************/
            TextBox textSatirtoplam = new TextBox();
            textSatirtoplam.Text = satirhesapla(i);
            textSatirtoplam.Name = "labelSatirToplam" + i.ToString();
            textSatirtoplam.Size = new System.Drawing.Size(100, 300);
            textSatirtoplam.Location = new System.Drawing.Point(630, 5);
            textSatirtoplam.MouseClick += new MouseEventHandler(combobox_SelectedindexChanged);
            textSatirtoplam.Visible = true;

问题是当我更改comboxBoxSelected 项目时如何更改文本框。我尝试了事件处理程序但失败了。这意味着如何到达文本框?

在此处输入图像描述

如果你帮助我,我会真的很开心!谢谢,我希望很清楚。

4

1 回答 1

0

如果我正确理解了您的问题,您希望更新与SelectIndexChanged事件发生在同一行的文本框。

您可以使用委托并将闭包传递给您的事件以获取对文本框的引用。

var combox = new ComboBox();
// code left out

var txtBox = new TextBox();
// code left out

combox.SelectedIndexChanged += delegate(Object sender, EventArgs e)
{
    var destTextBox = txtBox;  // important assign closure to a local variable.
    var srcCombo = (ComboBox) sender;

    destTextBox.Text = srcCombo.SelectedText;
};
于 2012-12-09T16:08:17.700 回答