如果在 aardio 界面线程 内调用 .NET 控件构造函数,
并将第 1 构造参数指定为 aardio 控件,例如: aardio 会自动将其转换为: 以简化调用代码。 建议加载 WinForm 控件的 .NET 程序集声明 isWinFormAssembly 属性为 true,
例如标准库 System.Windows.Forms 里就是这样写的: 在 aardio 中调用 如果程序集指定了以下直接属性: 则 aardio 会按 isWinFormAssembly 属性为 true 进行优化,
并且会使用指定的 baseFormClass 创建控件容器窗口(代替默认的 System.Windows.Forms.Form)。 否则会先调用 创建 winform.custom 的参数表的 cls 字段可指定为:
"custom","custom.button","custom.edit","custom.checkbox","custom.radio","custom.trackbar"
其中之一。 这些都是 custom 控件的别名, custom 启用双边框(控件构造参数中指定必读
构造并嵌入 .NET 控件
var dataGridView = System.Windows.Forms.DataGridView(winform.custom);
var dataGridView = System.Windows.Forms.DataGridView();
/*
aardio 会设置 .NET 控件自动填满 aardio 窗口,并移除三维边框/双边框扩展样式,
同时会将 aardio 控件的禁用、显示、文本属性转移给 .NET 控件,忽略其他属性。
*/
System.Windows.Forms.CreateEmbed(dataGridView,winform.custom);
System.Windows.Forms.__assembly__[["isWinFormAssembly"]] = true;
System.Windows.Forms.DataGridView(winform.custom) 时,
如果发现提供该 .NET 类的 .NET 程序集的 isWinFormAssembly 属性为 true ,
则会直接将代码优化为:var dataGridView = System.Windows.Forms.DataGridView();
System.Windows.Forms.CreateEmbed(dataGridView,winform.custom);
[["baseFormClass"]] = System.Windows.Forms.Form;
System.Windows.Forms.DataGridView(winform.custom) 一次,
在失败之后才会转换为 System.Windows.Forms.DataGridView() 与 ·System.Windows.Forms.CreateEmbed· 调用。自定义 custom 控件的外观
唯一区别是在 aardio 窗口设计器显示的外观不同。
例如 "custom.checkbox" 在窗体设计器中会显示为复选框。frame=1)后在设计器中显示凸起边框,外观类似 button ,
启用三维边框时(控件构造参数中指定edge=1)后设计器中显示凹陷边框,外观类似 edit 。
嵌入 .NET 控件时默认会自动移除通过 frame=1 或 edge=1 创建的边框。
.NET System.Windows.Forms 命名空间
.NET 命名空间、类、结构体的成员,
可访问成员命名空间、类、枚举、静态属性或字段,
导入的类可用于构造 .Net 对象,传回 .Net 则自动转为该类的 Type 对象
嵌入 .NET 控件(或 .NET 窗体对象)到 aardio 窗口。
此函数会为 .Net 控件创建无边框的 .NET 容器窗口,
再嵌入到 aardio 窗口内。
此函数也会自动移除 aardio 窗口的三维边框 / 双边框。
同时会将 aardio 窗口的禁用、显示、文本属性转移给 .NET 控件,忽略其他属性。
并设置 .NET 控件窗口填满并替代 aardio 窗口显示区域,并且同步缩放。
如果调用 .NET 窗口或控件的构造函数并将参数指定为 aardio 窗口时会自动调用此函数。
嵌入 .NET 控件(或 .NET 窗体对象)到 aardio 窗口。
@- netCtrl 参数可指定 .Net 控件,
也可以指定 System.Windows.Forms 命名空间下的控件类名。
@netCtrl 也可以指定 .NET 窗体对象(System.Windows.Forms.Form)。
如果 @netCtrl 不是 Form 则会创建一个 Form 作为容器再嵌入到 aardio 窗口中。
导入此 .NET 命名空间的程序集对象。