mono C#REPL System.Windows.Forms

时间:2015-07-09 18:05:08

标签: c# winforms mono read-eval-print-loop

当我尝试从单声道C#REPL创建表单时 我无法访问System.Windows.Forms类

我可以使用REPL中的其他.net库没有问题。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您可以根据需要在REPL中使用LoadAssembly和LoadPackage:

  • LoadAssembly(string):加载给定的程序集,相当于 将-r:NAME传递给编译器。
  • LoadPackage(string):加载 给定的包,相当于将-pkg:NAME传递给编译器。

示例:

csharp> LoadAssembly("System.Windows.Forms")
csharp> using System.Windows.Forms
csharp> LoadAssembly("System.Drawing")
csharp> using System.Drawing
csharp> class MyApp : System.Windows.Forms.Form
    {
        public MyApp()
        {
            Label label;

            ClientSize = new System.Drawing.Size(250, 250);

            label = new Label();
            label.Text = "A Mono CSharp REPL Window";
            label.Dock = DockStyle.Fill;
            label.TextAlign = ContentAlignment.MiddleCenter;
            this.Controls.Add(label);
            Text = "Hello, StackOverFlow";
        }

        public static void Main()
        {
            Application.Run(new MyApp());
        }
    }
MyApp.Main()

仅供参考:如果您正在尝试生成动态GUI,我会查看gsharp(来自mono-tools),因为它有一个GTK窗格,您可以在该窗格中添加/删除小部件。