我正在嘗試創建一個按鈕串列和一個文本框串列,并且我需要在這些元素之間進行互動。我的意思是,每當我單擊按鈕時,我都需要對同一行中的文本框執行一些操作。我嘗試在單擊事件上使用委托,但我真的找不到指向我想要定位的文本框的方法。
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);
}
}
uj5u.com熱心網友回復:
標簽方法如上一個答案所述作業,這個片段應該作業,只需根據您的需要更改 pnlTextBox 和 pnlButtons :
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;
foreach (var file in files)
{
var button = new Button() { Text = "Edit", Top = index 50, Left = 150 };
var textBox = new TextBox() { Text = file, Top = index 50, Left = 5 };
button.Tag = textBox;
button.Click = Button_Click;
pnlTextBox.Controls.Add(textBox);//Add the textbox to the container i used a panel here
pnlButtons.Controls.Add(button);//Add the button to the container i used a panel here
index = index 25;
}
}
private void Button_Click(object sender, EventArgs e)
{
var button=((Button)sender);
var textBox = ((TextBox)(button.Tag));
textBox.Text = button.Text;//example to access the proper textbox
}
uj5u.com熱心網友回復:
有很多方法可以處理這個問題。您可以在創建按鈕時將文本框粘貼到按鈕的 Tag 屬性中,如下所示:
foreach (var file in files)
{
var txt = new TextBox() { Text = file, Top = index 50, Left = 5 };
var btn = new Button() { Text = "Edit", Top = index 50, Left = 150, Tag =
txt };
EditButtons.Add(btn);
TextBoxes.Add(txt);
index = index 25;
}
然后,當您處理 click 事件時,使用此行獲取文本框:
var txt = (sender as Button).Tag
顯然還有其他方法,例如將按鈕和文本框放入字典中,但我認為這是最簡單的方法。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/506801.html
