Return winforms 按钮值

Return winforms button value

下面的代码是在 Ironpython 中,但我正在寻找 Ironpython 或任何其他语言(C#,VB...)中的 winforms 解决方案

我有一个 winforms 按钮:

self._button1 = System.Windows.Forms.Button()
self._button1.Location = System.Drawing.Point(234, 191)
self._button1.Name = "selectFolder_button"
self._button1.Size = System.Drawing.Size(121, 23)
self._button1.TabIndex = 1
self._button1.Text = "select"
self._button1.Click += self.Button1Click
self.Controls.Add(self._button1)

点击后会打开 'select folder dialog':

def FolderDialog(self):
    dialog = System.Windows.Forms.FolderBrowserDialog()
    if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK):
        folderString = dialog.SelectedPath
        return folderString

def Button1Click(self, sender, e):
    folderString = self.FolderDialog()
    return folderString

如何在同一个 winforms 表单中的其他方法中调用 'folderString'?看看它有什么价值。有没有像属性这样的'self._button1.Value'? 如果有任何帮助,我将不胜感激。提前谢谢你。

我找到了 solution here。 本质上,我创建了一个 class,然后将其实例化为 Winforms class 全局范围:

class Folder():
    def __init__(self, val):
        self.Value = val

selectedFolder = Folder(R"C:")  # instantiate class with default folder path

然后在“Button1Click”方法中为其分配一个新值:

def Button1Click(self, sender, e):
    folderString = self.FolderDialog()
    
    # assigned the 'folderString'
    self.selectedFolder.Value = folderString 

最后我只是在 Winforms class 的任何其他方法中调用 'self.selectedFolder.Value'。

感谢您的帮助@Idle_Mind