C# UserControl зависит от формы, в которой он находится - WinForms - PullRequest
0 голосов
/ 11 июля 2020

У меня проблема, как показано ниже:

Мне нужно создать UserControl, который помещается в разные формы. Но его поведение зависит от формы, в которую он помещен.

Пример: Form1 имеет кнопку, которая берет данные из базы данных и отправляет их на мой UserControl. Затем он создает, скажем, другой элемент управления, который можно щелкнуть, но при нажатии он вызывает db (зависит от Form1) и создает новые элементы управления ниже.

Form2 выполняет то же самое, но другие вызовы db.

Форма проблемы me, как вызывает второй вызов из UserControl - как сделать запрос к базе данных, когда это зависит от используемой внешней формы?

1 Ответ

0 голосов
/ 11 июля 2020

Это звучит как АБСОЛЮТНО УЖАСНЫЙ дизайн, но вот как бы вы это сделали:

private void button1_Click(object sender, EventArgs e)
{
    if (this.ParentForm != null)
    {
        if (this.ParentForm is Form1)
        {
            Form1 f1 = (Form1)this.ParentForm; // if you need a reference to the Form1 instance
            // ... do stuff for Form1 ...
        }
        else if (this.ParentForm is Form2)
        {
            Form2 f2 = (Form2)this.ParentForm; // if you need a reference to the Form2 instance
            // ... do stuff for Form2 ...
        }
        else if (...)
        {

        }
    }
}
...