mono C# REPL System.Windows.Forms

本文关键字:Windows Forms System REPL mono | 更新日期: 2023-09-27 18:01:49

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

我可以使用其他。net库从REPL没有问题。

任何想法吗?

mono C# REPL System.Windows.Forms

你可以根据需要在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窗格,你可以添加/删除窗口小部件到该窗格。