WinForms Python CLR — Открытие другой формы из существующей формы

#python #.net #clr

Вопрос:

У меня возникли некоторые чрезвычайные трудности с чем-то таким простым. Все, что я пытаюсь сделать, это запустить другую форму Windows из существующей формы Windows на Python. Я перепробовал все, что мог придумать, и не могу понять. Ниже приведен пример программы:

 import clr  clr.AddReference("System.Windows.Forms") clr.AddReference("System.Drawing") clr.AddReference("System.ComponentModel")  from System.Windows.Forms import * from System.Drawing import *  class MyForm(Form):  def __init__(self):  self.StartPosition = FormStartPosition.CenterScreen   self.btnTest = Button()  self.btnTest.Name = 'btnTest'  self.btnTest.Text = "Test"  self.btnTest.Size = Size(80, 30)   self.Controls.Add(self.btnTest)  self.btnTest.Click  = self.Add_Control_Limits_Form_Click   def Add_Control_Limits_Form_Click(self, sender, args):  Application.Run(MySecondForm())  class MySecondForm(Form):   def __init__(self2):  self2.StartPosition = FormStartPosition.CenterScreen  self2.AutoScaleMode = AutoScaleMode.Font  self2.ClientSize = Size(800, 450)  self2.Text = "Form2"  Application.EnableVisualStyles() Application.SetCompatibleTextRenderingDefault(False)  Application.Run(MyForm())  

Который, когда я запускаю его, выдает мне это сообщение об ошибке:

Исключение InvalidOperationException : Запуск второго цикла сообщений в одном потоке не является допустимой операцией. Вместо этого используйте Form.ShowDialog.

Я не думаю, что это так просто, как просто поместить MySecondForm.ShowDialog (), так как у меня есть это как класс. Что я упускаю?