在使用Python生成和自动化.NET WinForms时,我有一个相当简单的任务一直困扰着我。如何在表单之间传递数据?
我什么都试过了使用全局变量,使用不可变的字符串,等等。似乎没有什么坚持。有人能给我看一个例子,给我发一个链接,或者让我知道我做错了什么吗?我已经在这方面做了一个多星期,沮丧开始增加。
下面是一个简单的示例,它从一个表单中提取数据(字符串),然后将其发送到文本框中的另一个表单。
MYSTRING = ''
import clr
clr.AddReference("System.Windows.Forms")
clr.AddReference("System.Drawing")
from System.Windows.Forms import *
from System.Drawing import *
class MyForm(Form):
def __init__(self):
self.Text1 = TextBox()
self.Button1 = Button()
self.Button1.Location = Point(0, self.Text1.Bottom + 10)
self.Button1.Text = 'Send'
self.Controls.Add(self.Text1)
self.Controls.Add(self.Button1)
self.Button1.Click += self.Button1_Click
def Button1_Click(self, sender, args):
MYSTRING = self.Text1.Text
self.TopLevel = False
f2 = MyForm2()
f2.Show()
self.TopLevel = True
class MyForm2(Form):
def __init__(self):
self.Text2 = TextBox()
self.Controls.Add(self.Text2)
self.Load += self.MyForm2_Load
def MyForm2_Load(self, sender, args):
self.Text2.Text = MYSTRING
Application.EnableVisualStyles()
Application.SetCompatibleTextRenderingDefault(False)
Application.Run(MyForm())
1条答案
按热度按时间elcex8rz1#
所以我又一次想通了。
我不得不在我的一个事件中设置一个python全局变量来触发一个事件,就像这样...
...然后我可以访问globabl变量中的任何内容-在本例中,它是一个列表。
我希望这对其他人有帮助,因为我在任何地方都没有找到关于这方面的真实的文档。