import dotNet; dotNet.import("System.Windows.Forms"); System.Windows.Forms.DataGridView[["ctor"]] = function(this){ this.ColumnHeadersHeightSizeMode = 2; //避免在高分屏下错乱 this.AutoSizeRowsMode = 11/*DisplayedCells*/ //修正部分高分屏下不显示复选框 this[["ReplaceColumn"]] = function(name,col){ col.Name = name; var old =this.Columns.Item[name]; col.DataPropertyName = old.DataPropertyName; col.HeaderText = old.HeaderText; var idx = old.DisplayIndex; this.Columns.Remove(name); this.Columns.Add(col); this.Columns.Item[name].DisplayIndex = idx; } this[["ReplaceNameValueListColumn"]] = function(name,width,names,values){ var cmb = System.Windows.Forms.DataGridViewComboBoxColumn(); cmb.Width = width || 120; cmb.DisplayMember = "Name"; cmb.ValueMember = "Value"; cmb.DataSource = ..dotNet.createNameValueList(names,values); this.ReplaceColumn(name,cmb); } } System.Windows.Forms[["CreateEmbed"]] = function(ctrl,parent){ var form = System.Windows.Forms.Form(); form.FormBorderStyle = 0 /*System.Windows.Forms.FormBorderStyle.None*/; if(type.isString(ctrl)){ ctrl = System.Windows.Forms[ctrl](); } ctrl.Dock = 5/*System.Windows.Forms.DockStyle.Fill*/; dotNet.setParent(form,parent); form.Controls.Add(ctrl); //.NET Form 默认添加 _WS_CLIPCHILDREN parent.onEraseBkgnd = function(){ ctrl.Invalidate(); return 0; } return ctrl; } /**intellisense() System.Windows.Forms = .NET System.Windows.Forms 命名空间\n!dotNetNameSpace. end intellisense**/ /**intellisense(System.Windows.Forms) CreateEmbed( = 嵌入 .NET 控件到 aardio 窗口,\n此函数会为 .Net 控件创建无边框的 .Net 容器窗口,\n再嵌入到 aardio 窗口内 CreateEmbed(.(netCtrl,aarForm) = 嵌入 .NET 控件到 aardio 窗口,\n@netCtrl 参数可指定 .Net 控件,\n也可以指定 System.Windows.Forms 名空空间下的控件类名,\n@aarForm 参数指定 aardio 中的 win.form 对象或 custom 控件\n\n如果 @netCtrl 是窗口对象,应当改用 dotNet.setParent 函数嵌入 ? = .NET 命名空间、类、结构体的成员,\n可访问成员命名空间、类、枚举、静态属性或字段,\n导入的类可用于构造 .Net 对象,传回 .Net 则自动转为该类的 Type 对象\n!dotNetNameSpace. __assembly__ = 导入此 .NET 命名空间的程序集对象。\n!dotNetCrlAssembly. end intellisense**/