// 旧 主窗口 逻辑代码通过 this.<控件名> 访问控件; // 控件已迁入 9 个停靠窗口,这里用别名属性转发,逻辑代码无需改动。 // 停靠窗口实例字段由 MainForm.dockSurface1.DockWindows.cs 在创建后赋值。 namespace 成套报价软件 { public partial class MainForm { internal DockWindow w1; internal DockWindow2 w2; internal DockWindow3 w3; internal DockWindow4 w4; internal DockWindow5 w5; internal DockWindow6 w6; internal DockWindow7 w7; internal DockWindow8 w8; internal DockWindow9 w9; internal DockWindow10 w10; // 控件别名访问层:停靠窗口 Designer.cs 的字段是 private,且设计器每次保存都会 // 重新生成(public 改动会被重置)。这里用"一次反射 + 缓存"按字段名取控件, // 设计器怎么改都不受影响。 private readonly System.Collections.Generic.Dictionary _别名控件缓存 = new System.Collections.Generic.Dictionary(); private T 别名取控件(WeifenLuo.WinFormsUI.Docking.DockContent window, string name) where T : class { if (window == null) return null; string key = window.GetType().Name + "." + name; object v; if (_别名控件缓存.TryGetValue(key, out v)) return v as T; var f = window.GetType().GetField(name, System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic); if (f != null) v = f.GetValue(window); if (v == null) { // 兜底:字段不存在时按控件 Name 在控件树里找 var c = window.Controls.Find(name, true); if (c != null && c.Length > 0) v = c[0]; } if (v != null) _别名控件缓存[key] = v; // 空值不缓存,以后控件加回来还能找到 return v as T; } public Smart.CustomComponents.EnhancedDataGridView advancedDataGridView6 { get { return 别名取控件(w1, "advancedDataGridView6"); } } public System.Windows.Forms.Panel panel1 { get { return 别名取控件(w1, "panel1"); } } public System.Windows.Forms.Button button28 { get { return 别名取控件(w1, "button28"); } } public System.Windows.Forms.TextBox textBox1 { get { return 别名取控件(w1, "textBox1"); } } public System.Windows.Forms.ComboBox comboBox2 { get { return 别名取控件(w1, "comboBox2"); } } public System.Windows.Forms.SplitContainer splitContainer2 { get { return 别名取控件(w2, "splitContainer2"); } } public Smart.CustomComponents.EnhancedDataGridView advancedDataGridView9 { get { return 别名取控件(w2, "advancedDataGridView9"); } } public System.Windows.Forms.SplitContainer splitContainer3 { get { return 别名取控件(w2, "splitContainer3"); } } public Smart.CustomComponents.EnhancedDataGridView advancedDataGridView4 { get { return 别名取控件(w2, "advancedDataGridView4"); } } public Smart.CustomComponents.EnhancedDataGridView advancedDataGridView5 { get { return 别名取控件(w2, "advancedDataGridView5"); } } public System.Windows.Forms.SplitContainer splitContainer4 { get { return 别名取控件(w3, "splitContainer4"); } } public Smart.CustomComponents.EnhancedDataGridView advancedDataGridView1 { get { return 别名取控件(w3, "advancedDataGridView1"); } } public System.Windows.Forms.Panel panel5 { get { return 别名取控件(w3, "panel5"); } } public System.Windows.Forms.Label label4 { get { return 别名取控件(w3, "label4"); } } public System.Windows.Forms.ComboBox comboBox5 { get { return 别名取控件(w3, "comboBox5"); } } public Smart.CustomComponents.EnhancedDataGridView advancedDataGridView12 { get { return 别名取控件(w3, "advancedDataGridView12"); } } public Microsoft.Web.WebView2.WinForms.WebView2 webView21 { get { // 2026-09-13 17:42 设计器把控件换成了 Smart 的 WebView2Browser(字段 webView2Browser1,基类 UserControl // 不再是原生 WebView2,别名反射旧名 webView21 落空→null→EnsureCoreWebView2Async 处 NRE)。 // 取其内部原生实例 _inner 转发,主窗口全部代码(Ensure/事件/Source)继续走原生接口,零改动。 var b = 别名取控件(w4, "webView2Browser1"); if (b != null) { var f = b.GetType().GetField("_inner", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic); if (f != null) return f.GetValue(b) as Microsoft.Web.WebView2.WinForms.WebView2; } return 别名取控件(w4, "webView21"); // 兼容旧 Designer 布局 } } public System.Windows.Forms.Panel panel6 { get { return 别名取控件(w4, "panel6"); } } public System.Windows.Forms.Button button12 { get { return 别名取控件(w4, "button12"); } } public System.Windows.Forms.ComboBox comboBox7 { get { return 别名取控件(w4, "comboBox7"); } } public System.Windows.Forms.ComboBox comboBox6 { get { return 别名取控件(w4, "comboBox6"); } } public System.Windows.Forms.Button button6 { get { return 别名取控件(w4, "button6"); } } public Smart.CustomComponents.EnhancedDataGridView advancedDataGridView7 { get { return 别名取控件(w5, "advancedDataGridView7"); } } public System.Windows.Forms.Panel panel2 { get { return 别名取控件(w5, "panel2"); } } public System.Windows.Forms.ToolStrip toolStrip1 { get { return 别名取控件(w5, "toolStrip1"); } } public System.Windows.Forms.Button button30 { get { return 别名取控件(w5, "button30"); } } public System.Windows.Forms.TextBox textBox2 { get { return 别名取控件(w5, "textBox2"); } } public System.Windows.Forms.ComboBox comboBox3 { get { return 别名取控件(w5, "comboBox3"); } } public System.Windows.Forms.ToolStripButton toolStripButton1 { get { return 别名取控件(w5, "toolStripButton1"); } } public System.Windows.Forms.ToolStripButton toolStripButton2 { get { return 别名取控件(w5, "toolStripButton2"); } } public System.Windows.Forms.ToolStripSeparator toolStripSeparator1 { get { return 别名取控件(w5, "toolStripSeparator1"); } } public System.Windows.Forms.ToolStripButton toolStripButton3 { get { return 别名取控件(w5, "toolStripButton3"); } } public System.Windows.Forms.ToolStripButton toolStripButton4 { get { return 别名取控件(w5, "toolStripButton4"); } } public System.Windows.Forms.ToolStripButton toolStripButton5 { get { return 别名取控件(w5, "toolStripButton5"); } } public System.Windows.Forms.ToolStripSeparator toolStripSeparator2 { get { return 别名取控件(w5, "toolStripSeparator2"); } } public System.Windows.Forms.ToolStripButton toolStripButton6 { get { return 别名取控件(w5, "toolStripButton6"); } } public System.Windows.Forms.ToolStripButton toolStripButton7 { get { return 别名取控件(w5, "toolStripButton7"); } } public System.Windows.Forms.ToolStripButton toolStripButton8 { get { return 别名取控件(w5, "toolStripButton8"); } } public System.Windows.Forms.ToolStripButton toolStripButton11 { get { return 别名取控件(w5, "toolStripButton11"); } } public Smart.CustomComponents.EnhancedDataGridView advancedDataGridView10 { get { return 别名取控件(w6, "advancedDataGridView10"); } } public System.Windows.Forms.Panel panel4 { get { return 别名取控件(w6, "panel4"); } } public System.Windows.Forms.ToolStrip toolStrip3 { get { return 别名取控件(w6, "toolStrip3"); } } public System.Windows.Forms.Button button31 { get { return 别名取控件(w6, "button31"); } } public System.Windows.Forms.TextBox textBox5 { get { return 别名取控件(w6, "textBox5"); } } public System.Windows.Forms.ComboBox comboBox4 { get { return 别名取控件(w6, "comboBox4"); } } public System.Windows.Forms.ToolStripButton toolStripButton12 { get { return 别名取控件(w6, "toolStripButton12"); } } public System.Windows.Forms.ToolStripButton toolStripButton13 { get { return 别名取控件(w6, "toolStripButton13"); } } public System.Windows.Forms.ToolStripSeparator toolStripSeparator3 { get { return 别名取控件(w6, "toolStripSeparator3"); } } public System.Windows.Forms.ToolStripButton toolStripButton14 { get { return 别名取控件(w6, "toolStripButton14"); } } public System.Windows.Forms.ToolStripButton toolStripButton15 { get { return 别名取控件(w6, "toolStripButton15"); } } public System.Windows.Forms.ToolStripButton toolStripButton16 { get { return 别名取控件(w6, "toolStripButton16"); } } public Smart.CustomComponents.EnhancedDataGridView advancedDataGridView8 { get { return 别名取控件(w7, "advancedDataGridView8"); } } public System.Windows.Forms.Panel panel3 { get { return 别名取控件(w7, "panel3"); } } public System.Windows.Forms.ComboBox comboBox1 { get { return 别名取控件(w7, "comboBox1"); } } public System.Windows.Forms.RadioButton rb铜排 { get { return 别名取控件(w7, "rb铜排"); } } public System.Windows.Forms.RadioButton rb铝排 { get { return 别名取控件(w7, "rb铝排"); } } public System.Windows.Forms.Label lbl当前铜价 { get { return 别名取控件(w7, "lbl当前铜价"); } } public System.Windows.Forms.TextBox txt当前铜价 { get { return 别名取控件(w7, "txt当前铜价"); } } public System.Windows.Forms.Button btn刷新 { get { return 别名取控件(w7, "btn刷新"); } } public System.Windows.Forms.TextBox txt层数 { get { return 别名取控件(w7, "txt层数"); } } public System.Windows.Forms.Label lbl层 { get { return 别名取控件(w7, "lbl层"); } } public System.Windows.Forms.TextBox txt宽度 { get { return 别名取控件(w7, "txt宽度"); } } public System.Windows.Forms.Label lbl乘号 { get { return 别名取控件(w7, "lbl乘号"); } } public System.Windows.Forms.TextBox txt厚度 { get { return 别名取控件(w7, "txt厚度"); } } public System.Windows.Forms.Label lbl毫米 { get { return 别名取控件(w7, "lbl毫米"); } } public System.Windows.Forms.Label lbl更新日期 { get { return 别名取控件(w7, "lbl更新日期"); } } public System.Windows.Forms.TextBox txt更新日期 { get { return 别名取控件(w7, "txt更新日期"); } } public System.Windows.Forms.Label lbl铜价 { get { return 别名取控件(w7, "lbl铜价"); } } public System.Windows.Forms.TextBox txt铜价 { get { return 别名取控件(w7, "txt铜价"); } } public System.Windows.Forms.Label lblYuanPerKg { get { return 别名取控件(w7, "lblYuanPerKg"); } } public System.Windows.Forms.TextBox txt单价 { get { return 别名取控件(w7, "txt单价"); } } public System.Windows.Forms.Label lblYuanPerMeter { get { return 别名取控件(w7, "lblYuanPerMeter"); } } public System.Windows.Forms.Label lbl加工费 { get { return 别名取控件(w7, "lbl加工费"); } } public System.Windows.Forms.TextBox txt加工费 { get { return 别名取控件(w7, "txt加工费"); } } public System.Windows.Forms.Label lbl长度 { get { return 别名取控件(w7, "lbl长度"); } } public System.Windows.Forms.TextBox txt长度 { get { return 别名取控件(w7, "txt长度"); } } public System.Windows.Forms.Label lbl米 { get { return 别名取控件(w7, "lbl米"); } } public System.Windows.Forms.Label lbl重量 { get { return 别名取控件(w7, "lbl重量"); } } public System.Windows.Forms.TextBox txt重量 { get { return 别名取控件(w7, "txt重量"); } } public System.Windows.Forms.Label lblKG { get { return 别名取控件(w7, "lblKG"); } } public System.Windows.Forms.Label lbl报价单位 { get { return 别名取控件(w7, "lbl报价单位"); } } public System.Windows.Forms.Label lbl规格 { get { return 别名取控件(w7, "lbl规格"); } } public System.Windows.Forms.TextBox txt规格 { get { return 别名取控件(w7, "txt规格"); } } public System.Windows.Forms.Button btn插入 { get { return 别名取控件(w7, "btn插入"); } } public System.Windows.Forms.Button btn替换 { get { return 别名取控件(w7, "btn替换"); } } // ★ G2-2(2026-10-01):button14 别名已删(按钮已移功能区「计算」组) public System.Windows.Forms.SplitContainer splitContainer5 { get { return 别名取控件(w8, "splitContainer5"); } } public Smart.CustomComponents.EnhancedDataGridView advancedDataGridView图号 { get { return 别名取控件(w8, "advancedDataGridView图号"); } } public System.Windows.Forms.SplitContainer splitContainer6 { get { return 别名取控件(w8, "splitContainer6"); } } public Smart.CustomComponents.EnhancedDataGridView advancedDataGridView箱号 { get { return 别名取控件(w8, "advancedDataGridView箱号"); } } public Smart.CustomComponents.EnhancedDataGridView advancedDataGridView元件 { get { return 别名取控件(w8, "advancedDataGridView元件"); } } public System.Windows.Forms.Panel panel箱体计算 { get { return 别名取控件(w9, "panel箱体计算"); } } public System.Windows.Forms.ToolStrip toolStrip2 { get { return 别名取控件(w9, "toolStrip2"); } } public System.Windows.Forms.Label label3 { get { return 别名取控件(w9, "label3"); } } public System.Windows.Forms.NumericUpDown nud采购系数 { get { return 别名取控件(w9, "nud采购系数"); } } public System.Windows.Forms.TextBox textBox4 { get { return 别名取控件(w9, "textBox4"); } } public System.Windows.Forms.Label lblYuanPerTon { get { return 别名取控件(w9, "lblYuanPerTon"); } } public System.Windows.Forms.Label label2 { get { return 别名取控件(w9, "label2"); } } public System.Windows.Forms.CheckBox chk板厚 { get { return 别名取控件(w9, "chk板厚"); } } public System.Windows.Forms.Label label1 { get { return 别名取控件(w9, "label1"); } } public System.Windows.Forms.ComboBox cbo板厚 { get { return 别名取控件(w9, "cbo板厚"); } } public System.Windows.Forms.CheckBox chk型号 { get { return 别名取控件(w9, "chk型号"); } } public System.Windows.Forms.ComboBox cbo板材 { get { return 别名取控件(w9, "cbo板材"); } } public System.Windows.Forms.Label lbl板材 { get { return 别名取控件(w9, "lbl板材"); } } public System.Windows.Forms.ComboBox cboDepthD { get { return 别名取控件(w9, "cboDepthD"); } } public System.Windows.Forms.ComboBox cboWidthW { get { return 别名取控件(w9, "cboWidthW"); } } public System.Windows.Forms.ComboBox cboHeightH { get { return 别名取控件(w9, "cboHeightH"); } } public System.Windows.Forms.Label lblDepthD { get { return 别名取控件(w9, "lblDepthD"); } } public System.Windows.Forms.Label lblWidthW { get { return 别名取控件(w9, "lblWidthW"); } } public System.Windows.Forms.Label lblHeightH { get { return 别名取控件(w9, "lblHeightH"); } } public System.Windows.Forms.TextBox textBox3 { get { return 别名取控件(w9, "textBox3"); } } public System.Windows.Forms.Label lbl箱体计算标题 { get { return 别名取控件(w9, "lbl箱体计算标题"); } } public System.Windows.Forms.ComboBox cbo箱体类型 { get { return 别名取控件(w9, "cbo箱体类型"); } } public System.Windows.Forms.Label lbl型号 { get { return 别名取控件(w9, "lbl型号"); } } public System.Windows.Forms.ComboBox cbo型号 { get { return 别名取控件(w9, "cbo型号"); } } public System.Windows.Forms.Label lbl尺寸 { get { return 别名取控件(w9, "lbl尺寸"); } } public System.Windows.Forms.CheckBox chk板材 { get { return 别名取控件(w9, "chk板材"); } } public System.Windows.Forms.Label lbl板厚 { get { return 别名取控件(w9, "lbl板厚"); } } public System.Windows.Forms.Label lbl正视 { get { return 别名取控件(w9, "lbl正视"); } } public System.Windows.Forms.NumericUpDown nud正视 { get { return 别名取控件(w9, "nud正视"); } } public System.Windows.Forms.Label lbl面1 { get { return 别名取控件(w9, "lbl面1"); } } public System.Windows.Forms.Label lbl侧视 { get { return 别名取控件(w9, "lbl侧视"); } } public System.Windows.Forms.NumericUpDown nud侧视 { get { return 别名取控件(w9, "nud侧视"); } } public System.Windows.Forms.Label lbl面2 { get { return 别名取控件(w9, "lbl面2"); } } public System.Windows.Forms.Label lbl俯视 { get { return 别名取控件(w9, "lbl俯视"); } } public System.Windows.Forms.NumericUpDown nud俯视 { get { return 别名取控件(w9, "nud俯视"); } } public System.Windows.Forms.Label lbl面3 { get { return 别名取控件(w9, "lbl面3"); } } public System.Windows.Forms.Label lbl箱体单价 { get { return 别名取控件(w9, "lbl箱体单价"); } } public System.Windows.Forms.TextBox txt箱体单价 { get { return 别名取控件(w9, "txt箱体单价"); } } public System.Windows.Forms.Label lblYuan1 { get { return 别名取控件(w9, "lblYuan1"); } } public System.Windows.Forms.Label lbl箱体重量 { get { return 别名取控件(w9, "lbl箱体重量"); } } public System.Windows.Forms.TextBox txt箱体重量 { get { return 别名取控件(w9, "txt箱体重量"); } } public System.Windows.Forms.Label lblKG1 { get { return 别名取控件(w9, "lblKG1"); } } public System.Windows.Forms.Label lbl箱体厂商 { get { return 别名取控件(w9, "lbl箱体厂商"); } } public System.Windows.Forms.TextBox txt箱体厂商 { get { return 别名取控件(w9, "txt箱体厂商"); } } public System.Windows.Forms.Label lbl面积 { get { return 别名取控件(w9, "lbl面积"); } } public System.Windows.Forms.TextBox txt面积 { get { return 别名取控件(w9, "txt面积"); } } public System.Windows.Forms.Label lblYuanPerSquareMeter { get { return 别名取控件(w9, "lblYuanPerSquareMeter"); } } public System.Windows.Forms.Label lbl密度 { get { return 别名取控件(w9, "lbl密度"); } } public System.Windows.Forms.TextBox txt密度 { get { return 别名取控件(w9, "txt密度"); } } public System.Windows.Forms.Label lbl466 { get { return 别名取控件(w9, "lbl466"); } } public System.Windows.Forms.Label lbl报价系数 { get { return 别名取控件(w9, "lbl报价系数"); } } public System.Windows.Forms.NumericUpDown nud报价系数 { get { return 别名取控件(w9, "nud报价系数"); } } public System.Windows.Forms.Label lbl单台单价 { get { return 别名取控件(w9, "lbl单台单价"); } } public System.Windows.Forms.TextBox txt单台单价 { get { return 别名取控件(w9, "txt单台单价"); } } public System.Windows.Forms.Label lbl箱体规格 { get { return 别名取控件(w9, "lbl箱体规格"); } } public System.Windows.Forms.TextBox txt箱体规格 { get { return 别名取控件(w9, "txt箱体规格"); } } public System.Windows.Forms.Label lbl备注 { get { return 别名取控件(w9, "lbl备注"); } } public System.Windows.Forms.TextBox txt备注 { get { return 别名取控件(w9, "txt备注"); } } public System.Windows.Forms.CheckBox chk板材1 { get { return 别名取控件(w9, "chk板材1"); } } public System.Windows.Forms.ToolStripButton toolStripButton9 { get { return 别名取控件(w9, "toolStripButton9"); } } public System.Windows.Forms.ToolStripButton toolStripButton10 { get { return 别名取控件(w9, "toolStripButton10"); } } } }