我试图创建一个按钮列表和一个文本框列表,我需要在这些元素之间进行交互。我的意思是,每当我单击按钮时,我需要对同一行中的文本框执行一些操作。我试图在单击事件上使用委托,但我真的找不到一种方法来指向我要指向的文本框。
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Multiselect = true;
openFileDialog.ShowDialog();
string[] files = openFileDialog.FileNames.ToArray();
int index = 0;
List<Button> EditButtons = new List<Button>();
List<TextBox> TextBoxes = new List<TextBox>();
foreach (var file in files)
{
EditButtons.Add(new Button() { Text = "Edit", Top = index +50, Left = 150 });
TextBoxes.Add(new TextBox() { Text = file, Top = index +50, Left = 5 });
index = index + 25;
}
foreach (Button button in EditButtons)
{
Controls.Add(button);
}
foreach (TextBox textBox in TextBoxes)
{
Controls.Add(textBox);
}
}
2条答案
按热度按时间3vpjnl9f1#
标记方法的工作原理与上一个答案中描述的相同,此代码片段应该可以工作,只需根据需要更改pnlTextBox和pnlButtons即可:
wb1gzix02#
有许多方法可以处理这个问题。您可以在创建文本框时将其粘贴到按钮的Tag属性中,如下所示:
然后在处理click事件时使用以下行获取文本框:
显然还有其他的方法,比如把按钮和文本框放进字典里,但我认为这是最简单的方法。