gpt4 book ai didi

c# - 如何根据调用方法的调用(按钮)发送者(按钮#)操作变量名称?

转载 作者:太空狗 更新时间:2023-10-29 23:47:05 31 4
gpt4 key购买 nike

我的 C# Winform 面板中有一堆文本框。每行文本框的命名如下:

tb1 tbNickName1 comboBox1
tb2 tbNickName2 comboBox2
tb3 tbNickName3 comboBox3

等等。

我在每一行文本框旁边都有一个按钮。但是,我不想让按钮指向每个按钮的不同事件,而是只想将按钮指向 button1_Click 事件,并让它在那里完成所有处理。我知道如何执行此操作并且我所有的按钮都指向 button1_Click 事件。

但我需要能够确定它是从哪个按钮调用的(我能够做到),但我需要操作事件中文本框的名称,以便我可以根据哪一行进行处理我在我正在调用的/按钮中。

例如,如果我在 tb2 tbNickName2 comboBox2 文本框所在的第 2 行,那么我需要能够让 button1_Click 事件知道这一点并自动将 tb2 tbNickName2 comboBox2 值分配给我在下面的例子。

private void button1_Click(object sender, EventArgs e)
{
Button bt = (Button) sender; //will return 'button1'

string tmpEmail = null;
string tmpNickName = null;
string tmpGroup = null;

//I don't want to hard code the tb1.Text value here, I want to have
// the namechange based on which (Button) sender it was called from.

// For example button1 should assign all the
// tb1 tbNickName1 comboBox1 values

//If called from button2, then it should assign the
//tb2 tbNickName2 comboBox2 values instead

//How can I do this so tb1.Text is based off of the button # that I am
//calling for example tb(bt).Text would be cool but that does not work.

tmpEmail = tb1.Text; //What do I change tb1.Text to based on button #?

tmpNickName = tbNickName1.Text; //What do I change tbNickName1.Text to?

tmpGroup = comboBox1.Text;//What do I change comboBox1.Text to?
}


我知道我没有很好地解释这一点,但这是我能做的最好的。

最佳答案

Button button = sender as Button;
string buttonIndex = button.Name.Substring(6);
string tempEmail = (this.Controls["tb" + buttonIndex] as TextBox).Text;
string tmpNickName = (this.Controls["tbNickName" + buttonIndex] as TextBox).Text;
string tmpGroup = (this.Controls["comboBox" + buttonIndex] as ComboBox).Text;

关于c# - 如何根据调用方法的调用(按钮)发送者(按钮#)操作变量名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12996052/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com