[C#] Odczyt z głównej formy przez inną forme

0

Witam,
mam pytanie do ekspertów ale najpierw napisze kawałek kodu:

MainWindow.cs(w skrócie):
public delegate string GetTextDel();

public partial class MainWindow : Form
{
    public static GetTextDel GetTextCallback;

    public string GetText()
    {
         return textBox1.Text;
    }

    private void MainWindow_Load(object sender, EventArgs e)
    {
         GetTextCallback += new GetTextDel(GetText);
    }
}

AnotherForm.cs:

public partial class AnotherForm : Form
{
    private void button1_Click(object sender, EventArgs e)
        {

            GetTextDel myDel = new GetTextDel(MainWindow.GetTextCallback);
            MessageBox.Show(myDel());
                
        }
}

wszystko pieknie działa czyli z drugiej formy odczytuje właściwość Text z textboxa1 umieszczonego na głównej formie. Moje pytanie jest takie co w przypadku gdy mam tych textboxów 20? Musze pisać na każdego osobny delegat i osobną funkcje zwracającą właściwość danego textboxa czy jest jakiś sposób żeby w tym miejscu
GetTextDel myDel = new GetTextDel(MainWindow.GetTextCallback);
odpalało GetTextCallback z jakims parametrem który byłby nazwą wybranego textboxa a w głównej formie znajdowała by się jedna funkcja która na podstawie tego parametru by wybierała z którego textBoxa odczytać właściwość.
Z góry dzieki

0

Ale po co w ogóle używasz w tym celu delegatów?

0

a jak to zrobic bez delegatów? przeciez odwołuje sie od funkcji danej formy ktora odczytuje własciwosc komponentu np textboxa, w statycznych funkcjach nie moge odwolywac sie do komponentow danej formy jak textbox

0

Ale wymyśliłeś...

Główne okno:

public partial class MainWindow : Form
    {
    //.................
        private void button1_Click(object sender, EventArgs e)
        {
            (new AnotherForm() { Owner = this }).Show(); //stwórz i pokaż drugie okno
        }
    }

Drugie okno:

private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show((this.Owner as MainWindow).GetText());
        }
0

nie kłamie w statycznych metodach nie wyświela mi się zaden komponent ale nieważne nie wiedzialem ze przez this owner mozna, u mnie jest troche inaczej bo nie tworze nowych form za kazdym razem tylko caly czas sa utworzone i tylko je chowam i pokazuje ale dzieki :-)

1 użytkowników online, w tym zalogowanych: 0, gości: 1