IronPython 中的 OpenFileDialog

OpenFileDialog in IronPython

我有以下代码示例。我正在 Iron Python 中尝试 OpenFileDialog,但程序只是冻结而不是打开对话框 window。

#!/usr/bin/ipy

import clr
clr.AddReference("System.Windows.Forms")
clr.AddReference("System.Drawing")

from System.Windows.Forms import Application, Form, TextBox
from System.Windows.Forms import ToolBar, ToolBarButton, OpenFileDialog
from System.Windows.Forms import DialogResult, ScrollBars, DockStyle


class IForm(Form):

    def __init__(self):
        self.Text = "OpenDialog"

        toolbar = ToolBar()
        toolbar.Parent = self
        openb = ToolBarButton()


        self.textbox = TextBox()
        self.textbox.Parent = self
        self.textbox.Multiline = True
        self.textbox.ScrollBars = ScrollBars.Both
        self.textbox.WordWrap = False
        self.textbox.Parent = self
        self.textbox.Dock = DockStyle.Fill


        toolbar.Buttons.Add(openb)
        toolbar.ButtonClick += self.OnClicked


        self.CenterToScreen()

    def OnClicked(self, sender, event):
        dialog = OpenFileDialog()
        dialog.Filter = "C# files (*.cs)|*.cs"

        if dialog.ShowDialog(self) == DialogResult.OK:
            f = open(dialog.FileName)
            data = f.read()
            f.Close()
            self.textbox.Text = data


Application.Run(IForm())

代码来自http://zetcode.com/tutorials/ironpythontutorial/dialogs/

我正在使用 IronPython 2.7.5

我做错了什么?我实际上如何打开文件对话框并读取文件?

提前致谢)

很明显,我在使用 IronPython 时遇到的所有问题都是因为我的计算机上安装了多个 Python 版本。除了 IronPython,我都删除了它们,然后手动将 IronPython 添加到路径中。在那之后它开始工作得很好,没有崩溃。