#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 (), так как у меня есть это как класс. Что я упускаю?