Mam kilka pól tekstowych w panelu na mój C# Winform. Każdy wiersz polach tekstowych są nazwane tak:Jak manipulować nazwami zmiennych na podstawie wywołującego (przycisku) nadawcy (przycisk #) wywołującego metodę?
TB1 tbNickName1 comboBox1
Tb2 tbNickName2 comboBox2
TB3 tbNickName3 comboBox3
i tak dalej.
Mam przycisk obok każdego z wierszy pól tekstowych. Ale zamiast tego, że przycisk wskazuje na inne zdarzenie dla każdego przycisku, chcę wskazać przycisk tylko zdarzeniu button1_Click i zlecić wykonanie całego przetwarzania. Wiem, jak to zrobić, a wszystkie moje przyciski wskazują na zdarzenie Button1_Click.
Ale muszę być w stanie określić, z którego przycisku został wywołany (co mogę zrobić), ale muszę manipulować nazwami pól tekstowych w wydarzeniu, aby można było przetwarzać na podstawie tego, co wiersz Jestem/button, z którego dzwonię.
Na przykład, jeśli znajduję się w wierszu nr 2, gdzie znajdują się pola tekstowe tb2 tbNickName2 comboBox2, to muszę mieć możliwość poznania tego zdarzenia Button1_Click i automatycznie przypisać wartości tb2 tbNickName2 comboBox2 do zmiennych tmp, których używam. w poniższym przykładzie.
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?
}
wiem, że nie wyjaśniłem to bardzo dobrze, ale to najlepsze, co mogę zrobić.
stosowanie może używać CommandArgument-PROPERTY przycisków i oceniają, że w EventHandler. – mboldt
Czy możesz pokazać mi przykład kodu, jak to zrobić? – fraXis
Po napisaniu krótkiego fragmentu kodu jako odpowiedzi. – mboldt