Winforms c #: использование одного родителя для нескольких форм - PullRequest
0 голосов
/ 01 марта 2019

У меня есть две формы (например, Form1 и Form2) в моем проекте, и я запускаю только одну форму в зависимости от значения, которое читается из файла .txt в Program.cs.

Две формы имеют одинаковые элементы управления, и мне интересно, могу ли я вызвать элементы управления в workerThread (внутри класса Fsm.cs), используя тот же parent определение для обеих форм.

Например: элемент управления TextBox1 определен в Form1 и Form2, но я хочу вызывать в workerThread DoWork () только родительский элемент управления, связанный с запущенной формой:

 parent.TextBox1.Visible = true;

Где parent может быть Form1 или Form2.

Как я могу использовать одно и то же родительское определение в Fsm.cs?Я не хочу определять две разные функции потока для двух форм.

Здесь есть код:

public partial class Form1 : Form
{
    public Form1()
    {
        form2 = new Form2();
        InitializeComponent();
        workerObject = new Fsm(this, form2);
        Thread workerThread = new Thread(workerObject.DoWork);
    }
}

public partial class Form2 : Form
{
    public Form2()
    {
        form1 = new Form1();
        InitializeComponent();
        workerObject = new Fsm(form1, this);
        Thread workerThread = new Thread(workerObject.DoWork);
     }
 }


 public class Fsm 
 {
     public Form1 parent;
     public Form2 parent1;

     public Fsm(Form1 p, Form2 p1)
     {
         parent = p;
         parent1 = p1;
     }

     public void DoWork()
     {
         parent.TextBox1.Visible = true;
     }
 }

Спасибо.

...