基线:全量源码首提(D1 版本控制落地,含第一轮优化 B1-B4/A1/A4/缩放修复)

This commit is contained in:
dqb-dev
2026-10-01 22:15:22 +08:00
commit 1e65792b09
499 changed files with 204579 additions and 0 deletions
+494
View File
@@ -0,0 +1,494 @@
namespace 成套报价软件
{
public partial class 企业信息 : System.Windows.Forms.Form
{
/// <summary>必需的设计器变量。</summary>
private System.ComponentModel.IContainer components = null;
/// <summary>清理正在使用的资源。</summary>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows 窗体设计器生成的代码
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.lbl企业名称 = new System.Windows.Forms.Label();
this.txt企业名称 = new System.Windows.Forms.TextBox();
this.lbl地址 = new System.Windows.Forms.Label();
this.txt地址 = new System.Windows.Forms.TextBox();
this.lbl联系人 = new System.Windows.Forms.Label();
this.txt联系人 = new System.Windows.Forms.TextBox();
this.lbl电话 = new System.Windows.Forms.Label();
this.txt电话 = new System.Windows.Forms.TextBox();
this.lbl纳税识别号 = new System.Windows.Forms.Label();
this.txt纳税识别号 = new System.Windows.Forms.TextBox();
this.lbl法人代表 = new System.Windows.Forms.Label();
this.txt法人代表 = new System.Windows.Forms.TextBox();
this.btn确定 = new System.Windows.Forms.Button();
this.btn关闭 = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// lbl企业名称
//
this.lbl企业名称.Dock = System.Windows.Forms.DockStyle.None;
this.lbl企业名称.AutoSize = false;
this.lbl企业名称.AutoEllipsis = false;
this.lbl企业名称.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.lbl企业名称.FlatStyle = System.Windows.Forms.FlatStyle.Standard;
this.lbl企业名称.ImageAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.lbl企业名称.LiveSetting = System.Windows.Forms.Automation.AutomationLiveSetting.Off;
this.lbl企业名称.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
this.lbl企业名称.UseCompatibleTextRendering = false;
this.lbl企业名称.UseMnemonic = true;
this.lbl企业名称.BackColor = System.Drawing.SystemColors.Control;
this.lbl企业名称.Enabled = true;
this.lbl企业名称.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
this.lbl企业名称.ForeColor = System.Drawing.SystemColors.ControlText;
this.lbl企业名称.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0);
this.lbl企业名称.TabIndex = 12;
this.lbl企业名称.Size = new System.Drawing.Size(80, 20);
this.lbl企业名称.Location = new System.Drawing.Point(28, 22);
this.lbl企业名称.Text = "企业名称";
this.lbl企业名称.Name = "lbl企业名称";
//
// txt企业名称
//
this.txt企业名称.Dock = System.Windows.Forms.DockStyle.None;
this.txt企业名称.AcceptsReturn = false;
this.txt企业名称.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.None;
this.txt企业名称.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.None;
this.txt企业名称.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal;
this.txt企业名称.Multiline = false;
this.txt企业名称.ScrollBars = System.Windows.Forms.ScrollBars.None;
this.txt企业名称.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
this.txt企业名称.UseSystemPasswordChar = false;
this.txt企业名称.AcceptsTab = false;
this.txt企业名称.ShortcutsEnabled = true;
this.txt企业名称.BackColor = System.Drawing.SystemColors.Window;
this.txt企业名称.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.txt企业名称.ForeColor = System.Drawing.SystemColors.WindowText;
this.txt企业名称.HideSelection = true;
this.txt企业名称.MaxLength = 32767;
this.txt企业名称.ReadOnly = false;
this.txt企业名称.WordWrap = true;
this.txt企业名称.Enabled = true;
this.txt企业名称.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
this.txt企业名称.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
this.txt企业名称.TabIndex = 0;
this.txt企业名称.TabStop = true;
this.txt企业名称.Size = new System.Drawing.Size(300, 21);
this.txt企业名称.Location = new System.Drawing.Point(118, 20);
this.txt企业名称.Name = "txt企业名称";
//
// lbl地址
//
this.lbl地址.Dock = System.Windows.Forms.DockStyle.None;
this.lbl地址.AutoSize = false;
this.lbl地址.AutoEllipsis = false;
this.lbl地址.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.lbl地址.FlatStyle = System.Windows.Forms.FlatStyle.Standard;
this.lbl地址.ImageAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.lbl地址.LiveSetting = System.Windows.Forms.Automation.AutomationLiveSetting.Off;
this.lbl地址.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
this.lbl地址.UseCompatibleTextRendering = false;
this.lbl地址.UseMnemonic = true;
this.lbl地址.BackColor = System.Drawing.SystemColors.Control;
this.lbl地址.Enabled = true;
this.lbl地址.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
this.lbl地址.ForeColor = System.Drawing.SystemColors.ControlText;
this.lbl地址.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0);
this.lbl地址.TabIndex = 13;
this.lbl地址.Size = new System.Drawing.Size(80, 20);
this.lbl地址.Location = new System.Drawing.Point(28, 54);
this.lbl地址.Text = "地址";
this.lbl地址.Name = "lbl地址";
//
// txt地址
//
this.txt地址.Dock = System.Windows.Forms.DockStyle.None;
this.txt地址.AcceptsReturn = false;
this.txt地址.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.None;
this.txt地址.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.None;
this.txt地址.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal;
this.txt地址.Multiline = false;
this.txt地址.ScrollBars = System.Windows.Forms.ScrollBars.None;
this.txt地址.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
this.txt地址.UseSystemPasswordChar = false;
this.txt地址.AcceptsTab = false;
this.txt地址.ShortcutsEnabled = true;
this.txt地址.BackColor = System.Drawing.SystemColors.Window;
this.txt地址.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.txt地址.ForeColor = System.Drawing.SystemColors.WindowText;
this.txt地址.HideSelection = true;
this.txt地址.MaxLength = 32767;
this.txt地址.ReadOnly = false;
this.txt地址.WordWrap = true;
this.txt地址.Enabled = true;
this.txt地址.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
this.txt地址.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
this.txt地址.TabIndex = 1;
this.txt地址.TabStop = true;
this.txt地址.Size = new System.Drawing.Size(300, 21);
this.txt地址.Location = new System.Drawing.Point(118, 52);
this.txt地址.Name = "txt地址";
//
// lbl联系人
//
this.lbl联系人.Dock = System.Windows.Forms.DockStyle.None;
this.lbl联系人.AutoSize = false;
this.lbl联系人.AutoEllipsis = false;
this.lbl联系人.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.lbl联系人.FlatStyle = System.Windows.Forms.FlatStyle.Standard;
this.lbl联系人.ImageAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.lbl联系人.LiveSetting = System.Windows.Forms.Automation.AutomationLiveSetting.Off;
this.lbl联系人.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
this.lbl联系人.UseCompatibleTextRendering = false;
this.lbl联系人.UseMnemonic = true;
this.lbl联系人.BackColor = System.Drawing.SystemColors.Control;
this.lbl联系人.Enabled = true;
this.lbl联系人.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
this.lbl联系人.ForeColor = System.Drawing.SystemColors.ControlText;
this.lbl联系人.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0);
this.lbl联系人.TabIndex = 14;
this.lbl联系人.Size = new System.Drawing.Size(80, 20);
this.lbl联系人.Location = new System.Drawing.Point(28, 86);
this.lbl联系人.Text = "联系人";
this.lbl联系人.Name = "lbl联系人";
//
// txt联系人
//
this.txt联系人.Dock = System.Windows.Forms.DockStyle.None;
this.txt联系人.AcceptsReturn = false;
this.txt联系人.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.None;
this.txt联系人.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.None;
this.txt联系人.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal;
this.txt联系人.Multiline = false;
this.txt联系人.ScrollBars = System.Windows.Forms.ScrollBars.None;
this.txt联系人.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
this.txt联系人.UseSystemPasswordChar = false;
this.txt联系人.AcceptsTab = false;
this.txt联系人.ShortcutsEnabled = true;
this.txt联系人.BackColor = System.Drawing.SystemColors.Window;
this.txt联系人.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.txt联系人.ForeColor = System.Drawing.SystemColors.WindowText;
this.txt联系人.HideSelection = true;
this.txt联系人.MaxLength = 32767;
this.txt联系人.ReadOnly = false;
this.txt联系人.WordWrap = true;
this.txt联系人.Enabled = true;
this.txt联系人.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
this.txt联系人.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
this.txt联系人.TabIndex = 2;
this.txt联系人.TabStop = true;
this.txt联系人.Size = new System.Drawing.Size(300, 21);
this.txt联系人.Location = new System.Drawing.Point(118, 84);
this.txt联系人.Name = "txt联系人";
//
// lbl电话
//
this.lbl电话.Dock = System.Windows.Forms.DockStyle.None;
this.lbl电话.AutoSize = false;
this.lbl电话.AutoEllipsis = false;
this.lbl电话.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.lbl电话.FlatStyle = System.Windows.Forms.FlatStyle.Standard;
this.lbl电话.ImageAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.lbl电话.LiveSetting = System.Windows.Forms.Automation.AutomationLiveSetting.Off;
this.lbl电话.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
this.lbl电话.UseCompatibleTextRendering = false;
this.lbl电话.UseMnemonic = true;
this.lbl电话.BackColor = System.Drawing.SystemColors.Control;
this.lbl电话.Enabled = true;
this.lbl电话.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
this.lbl电话.ForeColor = System.Drawing.SystemColors.ControlText;
this.lbl电话.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0);
this.lbl电话.TabIndex = 15;
this.lbl电话.Size = new System.Drawing.Size(80, 20);
this.lbl电话.Location = new System.Drawing.Point(28, 118);
this.lbl电话.Text = "电话";
this.lbl电话.Name = "lbl电话";
//
// txt电话
//
this.txt电话.Dock = System.Windows.Forms.DockStyle.None;
this.txt电话.AcceptsReturn = false;
this.txt电话.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.None;
this.txt电话.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.None;
this.txt电话.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal;
this.txt电话.Multiline = false;
this.txt电话.ScrollBars = System.Windows.Forms.ScrollBars.None;
this.txt电话.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
this.txt电话.UseSystemPasswordChar = false;
this.txt电话.AcceptsTab = false;
this.txt电话.ShortcutsEnabled = true;
this.txt电话.BackColor = System.Drawing.SystemColors.Window;
this.txt电话.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.txt电话.ForeColor = System.Drawing.SystemColors.WindowText;
this.txt电话.HideSelection = true;
this.txt电话.MaxLength = 32767;
this.txt电话.ReadOnly = false;
this.txt电话.WordWrap = true;
this.txt电话.Enabled = true;
this.txt电话.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
this.txt电话.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
this.txt电话.TabIndex = 3;
this.txt电话.TabStop = true;
this.txt电话.Size = new System.Drawing.Size(300, 21);
this.txt电话.Location = new System.Drawing.Point(118, 116);
this.txt电话.Name = "txt电话";
//
// lbl纳税识别号
//
this.lbl纳税识别号.Dock = System.Windows.Forms.DockStyle.None;
this.lbl纳税识别号.AutoSize = false;
this.lbl纳税识别号.AutoEllipsis = false;
this.lbl纳税识别号.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.lbl纳税识别号.FlatStyle = System.Windows.Forms.FlatStyle.Standard;
this.lbl纳税识别号.ImageAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.lbl纳税识别号.LiveSetting = System.Windows.Forms.Automation.AutomationLiveSetting.Off;
this.lbl纳税识别号.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
this.lbl纳税识别号.UseCompatibleTextRendering = false;
this.lbl纳税识别号.UseMnemonic = true;
this.lbl纳税识别号.BackColor = System.Drawing.SystemColors.Control;
this.lbl纳税识别号.Enabled = true;
this.lbl纳税识别号.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
this.lbl纳税识别号.ForeColor = System.Drawing.SystemColors.ControlText;
this.lbl纳税识别号.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0);
this.lbl纳税识别号.TabIndex = 16;
this.lbl纳税识别号.Size = new System.Drawing.Size(80, 20);
this.lbl纳税识别号.Location = new System.Drawing.Point(28, 150);
this.lbl纳税识别号.Text = "纳税识别号";
this.lbl纳税识别号.Name = "lbl纳税识别号";
//
// txt纳税识别号
//
this.txt纳税识别号.Dock = System.Windows.Forms.DockStyle.None;
this.txt纳税识别号.AcceptsReturn = false;
this.txt纳税识别号.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.None;
this.txt纳税识别号.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.None;
this.txt纳税识别号.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal;
this.txt纳税识别号.Multiline = false;
this.txt纳税识别号.ScrollBars = System.Windows.Forms.ScrollBars.None;
this.txt纳税识别号.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
this.txt纳税识别号.UseSystemPasswordChar = false;
this.txt纳税识别号.AcceptsTab = false;
this.txt纳税识别号.ShortcutsEnabled = true;
this.txt纳税识别号.BackColor = System.Drawing.SystemColors.Window;
this.txt纳税识别号.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.txt纳税识别号.ForeColor = System.Drawing.SystemColors.WindowText;
this.txt纳税识别号.HideSelection = true;
this.txt纳税识别号.MaxLength = 32767;
this.txt纳税识别号.ReadOnly = false;
this.txt纳税识别号.WordWrap = true;
this.txt纳税识别号.Enabled = true;
this.txt纳税识别号.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
this.txt纳税识别号.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
this.txt纳税识别号.TabIndex = 4;
this.txt纳税识别号.TabStop = true;
this.txt纳税识别号.Size = new System.Drawing.Size(300, 21);
this.txt纳税识别号.Location = new System.Drawing.Point(118, 148);
this.txt纳税识别号.Name = "txt纳税识别号";
//
// lbl法人代表
//
this.lbl法人代表.Dock = System.Windows.Forms.DockStyle.None;
this.lbl法人代表.AutoSize = false;
this.lbl法人代表.AutoEllipsis = false;
this.lbl法人代表.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.lbl法人代表.FlatStyle = System.Windows.Forms.FlatStyle.Standard;
this.lbl法人代表.ImageAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.lbl法人代表.LiveSetting = System.Windows.Forms.Automation.AutomationLiveSetting.Off;
this.lbl法人代表.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
this.lbl法人代表.UseCompatibleTextRendering = false;
this.lbl法人代表.UseMnemonic = true;
this.lbl法人代表.BackColor = System.Drawing.SystemColors.Control;
this.lbl法人代表.Enabled = true;
this.lbl法人代表.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
this.lbl法人代表.ForeColor = System.Drawing.SystemColors.ControlText;
this.lbl法人代表.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0);
this.lbl法人代表.TabIndex = 17;
this.lbl法人代表.Size = new System.Drawing.Size(80, 20);
this.lbl法人代表.Location = new System.Drawing.Point(28, 182);
this.lbl法人代表.Text = "法人代表";
this.lbl法人代表.Name = "lbl法人代表";
//
// txt法人代表
//
this.txt法人代表.Dock = System.Windows.Forms.DockStyle.None;
this.txt法人代表.AcceptsReturn = false;
this.txt法人代表.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.None;
this.txt法人代表.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.None;
this.txt法人代表.CharacterCasing = System.Windows.Forms.CharacterCasing.Normal;
this.txt法人代表.Multiline = false;
this.txt法人代表.ScrollBars = System.Windows.Forms.ScrollBars.None;
this.txt法人代表.TextAlign = System.Windows.Forms.HorizontalAlignment.Left;
this.txt法人代表.UseSystemPasswordChar = false;
this.txt法人代表.AcceptsTab = false;
this.txt法人代表.ShortcutsEnabled = true;
this.txt法人代表.BackColor = System.Drawing.SystemColors.Window;
this.txt法人代表.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.txt法人代表.ForeColor = System.Drawing.SystemColors.WindowText;
this.txt法人代表.HideSelection = true;
this.txt法人代表.MaxLength = 32767;
this.txt法人代表.ReadOnly = false;
this.txt法人代表.WordWrap = true;
this.txt法人代表.Enabled = true;
this.txt法人代表.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
this.txt法人代表.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
this.txt法人代表.TabIndex = 5;
this.txt法人代表.TabStop = true;
this.txt法人代表.Size = new System.Drawing.Size(300, 21);
this.txt法人代表.Location = new System.Drawing.Point(118, 180);
this.txt法人代表.Name = "txt法人代表";
//
// btn确定
//
this.btn确定.Dock = System.Windows.Forms.DockStyle.None;
this.btn确定.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowOnly;
this.btn确定.DialogResult = System.Windows.Forms.DialogResult.OK;
this.btn确定.AutoEllipsis = false;
this.btn确定.AutoSize = false;
this.btn确定.BackColor = System.Drawing.SystemColors.Control;
this.btn确定.FlatStyle = System.Windows.Forms.FlatStyle.Standard;
this.btn确定.ImageAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.btn确定.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.btn确定.TextImageRelation = System.Windows.Forms.TextImageRelation.Overlay;
this.btn确定.UseMnemonic = true;
this.btn确定.UseCompatibleTextRendering = false;
this.btn确定.UseVisualStyleBackColor = true;
this.btn确定.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Tile;
this.btn确定.Enabled = true;
this.btn确定.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
this.btn确定.ForeColor = System.Drawing.SystemColors.ControlText;
this.btn确定.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
this.btn确定.TabIndex = 6;
this.btn确定.TabStop = true;
this.btn确定.Size = new System.Drawing.Size(75, 23);
this.btn确定.Location = new System.Drawing.Point(248, 216);
this.btn确定.Text = "确定";
this.btn确定.Name = "btn确定";
//
// btn关闭
//
this.btn关闭.Dock = System.Windows.Forms.DockStyle.None;
this.btn关闭.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowOnly;
this.btn关闭.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.btn关闭.AutoEllipsis = false;
this.btn关闭.AutoSize = false;
this.btn关闭.BackColor = System.Drawing.SystemColors.Control;
this.btn关闭.FlatStyle = System.Windows.Forms.FlatStyle.Standard;
this.btn关闭.ImageAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.btn关闭.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.btn关闭.TextImageRelation = System.Windows.Forms.TextImageRelation.Overlay;
this.btn关闭.UseMnemonic = true;
this.btn关闭.UseCompatibleTextRendering = false;
this.btn关闭.UseVisualStyleBackColor = true;
this.btn关闭.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Tile;
this.btn关闭.Enabled = true;
this.btn关闭.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
this.btn关闭.ForeColor = System.Drawing.SystemColors.ControlText;
this.btn关闭.Margin = new System.Windows.Forms.Padding(3, 3, 3, 3);
this.btn关闭.TabIndex = 7;
this.btn关闭.TabStop = true;
this.btn关闭.Size = new System.Drawing.Size(75, 23);
this.btn关闭.Location = new System.Drawing.Point(343, 216);
this.btn关闭.Text = "关闭";
this.btn关闭.Name = "btn关闭";
// 企业信息
this.Controls.AddRange(new System.Windows.Forms.Control[] {
this.lbl企业名称,
this.txt企业名称,
this.lbl地址,
this.txt地址,
this.lbl联系人,
this.txt联系人,
this.lbl电话,
this.txt电话,
this.lbl纳税识别号,
this.txt纳税识别号,
this.lbl法人代表,
this.txt法人代表,
this.btn确定,
this.btn关闭,
});
//
// 企业信息
//
this.Dock = System.Windows.Forms.DockStyle.None;
this.AutoScroll = false;
this.AutoSize = false;
this.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowOnly;
this.AutoValidate = System.Windows.Forms.AutoValidate.EnablePreventFocusChange;
this.BackColor = System.Drawing.Color.White;
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
this.ControlBox = true;
this.HelpButton = false;
this.IsMdiContainer = false;
this.KeyPreview = false;
this.MaximumSize = new System.Drawing.Size(0, 0);
this.MinimumSize = new System.Drawing.Size(0, 0);
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Opacity = 1;
this.RightToLeftLayout = false;
this.ShowInTaskbar = true;
this.ShowIcon = true;
this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Auto;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.TopMost = false;
this.WindowState = System.Windows.Forms.FormWindowState.Normal;
this.AutoScrollMargin = new System.Drawing.Size(0, 0);
this.AutoScrollMinSize = new System.Drawing.Size(0, 0);
this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Tile;
this.Enabled = true;
this.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
this.ForeColor = System.Drawing.SystemColors.ControlText;
this.Padding = new System.Windows.Forms.Padding(0, 0, 0, 0);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.Size = new System.Drawing.Size(460, 280);
this.Text = "企业信息";
this.Name = "企业信息";
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label lbl企业名称;
private System.Windows.Forms.TextBox txt企业名称;
private System.Windows.Forms.Label lbl地址;
private System.Windows.Forms.TextBox txt地址;
private System.Windows.Forms.Label lbl联系人;
private System.Windows.Forms.TextBox txt联系人;
private System.Windows.Forms.Label lbl电话;
private System.Windows.Forms.TextBox txt电话;
private System.Windows.Forms.Label lbl纳税识别号;
private System.Windows.Forms.TextBox txt纳税识别号;
private System.Windows.Forms.Label lbl法人代表;
private System.Windows.Forms.TextBox txt法人代表;
private System.Windows.Forms.Button btn确定;
private System.Windows.Forms.Button btn关闭;
}
}
+168
View File
@@ -0,0 +1,168 @@
using System;
using System.IO;
using System.Xml;
using System.Windows.Forms;
namespace 成套报价软件
{
/// <summary>
/// 企业信息 的交互逻辑(事件处理)。
/// UI 布局定义见 企业信息.ui.cs。
/// 本窗体负责维护本机成套厂的固定信息(名称/地址/联系人/电话/纳税识别号/法人代表),
/// 信息持久化到 shezhi\企业信息.config.xml,供「新建项目」窗口自动调用。
/// </summary>
public partial class 企业信息
{
/// <summary>
/// 企业信息配置文件相对路径(相对程序根目录)。
/// 与本窗体的 UI 布局 XML(shezhi\企业信息.xml)区分开,此文件是运行时数据。
/// </summary>
private const string ConfigFile = @"shezhi\企业信息.config.xml";
/// <summary>构造函数:初始化 UI 并绑定事件。</summary>
public 企业信息()
{
InitializeComponent();
this.Load += 企业信息_Load;
this.btn确定.Click += btn确定_Click;
}
/// <summary>窗口加载时,从配置文件回填已保存的企业信息。</summary>
private void 企业信息_Load(object sender, EventArgs e)
{
LoadFromConfig();
}
/// <summary>“确定”按钮:先把当前编辑的内容持久化,再以 OK 结果关闭窗口。</summary>
private void btn确定_Click(object sender, EventArgs e)
{
SaveToConfig();
}
// ============================================================
// 配置文件读写(shezhi\企业信息.config.xml)
// ============================================================
/// <summary>配置文件绝对路径(基于程序根目录拼接)。</summary>
private static string GetConfigFullPath()
{
return Path.Combine(AppDomain.CurrentDomain.BaseDirectory, ConfigFile);
}
/// <summary>
/// 把当前 6 个文本框内容写入配置文件。
/// 目录不存在会自动创建;失败时弹窗提示,但不抛异常阻断关闭。
/// </summary>
private void SaveToConfig()
{
try
{
string path = GetConfigFullPath();
string dir = Path.GetDirectoryName(path);
if (!string.IsNullOrEmpty(dir) && !Directory.Exists(dir))
{
Directory.CreateDirectory(dir);
}
var settings = new XmlWriterSettings
{
Encoding = System.Text.Encoding.UTF8,
Indent = true,
};
using (var writer = XmlWriter.Create(path, settings))
{
writer.WriteStartElement("企业信息");
writer.WriteElementString("企业名称", txt企业名称.Text ?? "");
writer.WriteElementString("地址", txt地址.Text ?? "");
writer.WriteElementString("联系人", txt联系人.Text ?? "");
writer.WriteElementString("电话", txt电话.Text ?? "");
writer.WriteElementString("纳税识别号", txt纳税识别号.Text ?? "");
writer.WriteElementString("法人代表", txt法人代表.Text ?? "");
writer.WriteEndElement();
}
}
catch (Exception ex)
{
MessageBox.Show(this, "保存企业信息失败:\n" + ex.Message,
"企业信息", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
/// <summary>从配置文件读取并回填 6 个文本框;文件不存在时静默忽略。</summary>
private void LoadFromConfig()
{
string path = GetConfigFullPath();
if (!File.Exists(path)) return;
try
{
var doc = new XmlDocument();
doc.Load(path);
txt企业名称.Text = ReadNodeText(doc, "企业名称");
txt地址.Text = ReadNodeText(doc, "地址");
txt联系人.Text = ReadNodeText(doc, "联系人");
txt电话.Text = ReadNodeText(doc, "电话");
txt纳税识别号.Text = ReadNodeText(doc, "纳税识别号");
txt法人代表.Text = ReadNodeText(doc, "法人代表");
}
catch
{
// 读失败不阻断窗口显示,保持文本框为空
}
}
/// <summary>安全读取根节点下指定子节点的文本,节点不存在返回空串。</summary>
private static string ReadNodeText(XmlDocument doc, string name)
{
XmlNode node = doc.SelectSingleNode("//" + name);
return node != null ? (node.InnerText ?? "") : "";
}
// ============================================================
// 公共读取接口(供「新建项目」等窗口调用,无需弹出本窗体)
// ============================================================
/// <summary>
/// 直接从配置文件读取企业信息(不创建窗口)。
/// 文件不存在或读取失败时,各字段返回空串。
/// 键固定为:企业名称/地址/联系人/电话/纳税识别号/法人代表。
/// </summary>
public static System.Collections.Generic.Dictionary<string, string> LoadSettings()
{
var result = new System.Collections.Generic.Dictionary<string, string>
{
{ "企业名称", "" },
{ "地址", "" },
{ "联系人", "" },
{ "电话", "" },
{ "纳税识别号", "" },
{ "法人代表", "" },
};
string path = GetConfigFullPath();
if (!File.Exists(path)) return result;
try
{
var doc = new XmlDocument();
doc.Load(path);
var keys = new System.Collections.Generic.List<string>(result.Keys);
foreach (string key in keys)
{
XmlNode node = doc.SelectSingleNode("//" + key);
if (node != null)
{
result[key] = node.InnerText ?? "";
}
}
}
catch
{
// 忽略,返回空值字典
}
return result;
}
}
}
+242
View File
@@ -0,0 +1,242 @@
namespace 成套报价软件
{
/// <summary>关于软件对话框(经典关于页模板):页头(图标+名称+版本+简介) / 选项卡(功能介绍|开源致谢) / 底部版权栏。</summary>
partial class 关于软件
{
/// <summary>必需的设计器变量。</summary>
private System.ComponentModel.IContainer components = null;
/// <summary>清理正在使用的资源。</summary>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows 窗体设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.pnl页头 = new System.Windows.Forms.Panel();
this.pic图标 = new System.Windows.Forms.PictureBox();
this.lbl简介 = new System.Windows.Forms.Label();
this.lbl版本 = new System.Windows.Forms.Label();
this.lbl软件名 = new System.Windows.Forms.Label();
this.tab内容 = new System.Windows.Forms.TabControl();
this.tabPage功能 = new System.Windows.Forms.TabPage();
this.txt功能 = new System.Windows.Forms.RichTextBox();
this.tabPage开源 = new System.Windows.Forms.TabPage();
this.tree开源 = new System.Windows.Forms.TreeView();
this.pnl底栏 = new System.Windows.Forms.Panel();
this.lbl版权 = new System.Windows.Forms.Label();
this.btn确定 = new System.Windows.Forms.Button();
this.pnl页头.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pic图标)).BeginInit();
this.tab内容.SuspendLayout();
this.tabPage功能.SuspendLayout();
this.tabPage开源.SuspendLayout();
this.pnl底栏.SuspendLayout();
this.SuspendLayout();
//
// pnl页头
//
this.pnl页头.BackColor = System.Drawing.Color.White;
this.pnl页头.Controls.Add(this.pic图标);
this.pnl页头.Controls.Add(this.lbl简介);
this.pnl页头.Controls.Add(this.lbl版本);
this.pnl页头.Controls.Add(this.lbl软件名);
this.pnl页头.Dock = System.Windows.Forms.DockStyle.Top;
this.pnl页头.Location = new System.Drawing.Point(0, 0);
this.pnl页头.Name = "pnl页头";
this.pnl页头.Size = new System.Drawing.Size(880, 84);
this.pnl页头.TabIndex = 0;
this.pnl页头.Paint += new System.Windows.Forms.PaintEventHandler(this.pnl页头_Paint);
//
// pic图标
//
this.pic图标.Location = new System.Drawing.Point(20, 16);
this.pic图标.Name = "pic图标";
this.pic图标.Size = new System.Drawing.Size(48, 48);
this.pic图标.TabIndex = 0;
this.pic图标.TabStop = false;
//
// lbl软件名
//
this.lbl软件名.AutoSize = true;
this.lbl软件名.Font = new System.Drawing.Font("Microsoft YaHei UI", 15F, System.Drawing.FontStyle.Bold);
this.lbl软件名.Location = new System.Drawing.Point(84, 12);
this.lbl软件名.Name = "lbl软件名";
this.lbl软件名.Size = new System.Drawing.Size(165, 27);
this.lbl软件名.TabIndex = 1;
this.lbl软件名.Text = "成套报价软件";
//
// lbl版本
//
this.lbl版本.AutoSize = true;
this.lbl版本.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F);
this.lbl版本.ForeColor = System.Drawing.Color.Gray;
this.lbl版本.Location = new System.Drawing.Point(256, 22);
this.lbl版本.Name = "lbl版本";
this.lbl版本.Size = new System.Drawing.Size(46, 17);
this.lbl版本.TabIndex = 2;
this.lbl版本.Text = "v1.0.0";
//
// lbl简介
//
this.lbl简介.AutoSize = true;
this.lbl简介.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F);
this.lbl简介.ForeColor = System.Drawing.Color.DimGray;
this.lbl简介.Location = new System.Drawing.Point(87, 50);
this.lbl简介.Name = "lbl简介";
this.lbl简介.Size = new System.Drawing.Size(139, 17);
this.lbl简介.TabIndex = 3;
this.lbl简介.Text = "电气成套设备报价工具";
//
// tab内容
//
this.tab内容.Controls.Add(this.tabPage功能);
this.tab内容.Controls.Add(this.tabPage开源);
this.tab内容.Dock = System.Windows.Forms.DockStyle.Fill;
this.tab内容.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F);
this.tab内容.Location = new System.Drawing.Point(0, 84);
this.tab内容.Name = "tab内容";
this.tab内容.SelectedIndex = 0;
this.tab内容.Size = new System.Drawing.Size(880, 548);
this.tab内容.TabIndex = 1;
//
// tabPage功能
//
this.tabPage功能.Controls.Add(this.txt功能);
this.tabPage功能.Location = new System.Drawing.Point(4, 26);
this.tabPage功能.Name = "tabPage功能";
this.tabPage功能.Padding = new System.Windows.Forms.Padding(3);
this.tabPage功能.Size = new System.Drawing.Size(872, 518);
this.tabPage功能.TabIndex = 0;
this.tabPage功能.Text = " 功能介绍 ";
this.tabPage功能.UseVisualStyleBackColor = true;
//
// txt功能
//
this.txt功能.BackColor = System.Drawing.SystemColors.Window;
this.txt功能.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.txt功能.Dock = System.Windows.Forms.DockStyle.Fill;
this.txt功能.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F);
this.txt功能.Location = new System.Drawing.Point(8, 8);
this.txt功能.Name = "txt功能";
this.txt功能.ReadOnly = true;
this.txt功能.Size = new System.Drawing.Size(856, 502);
this.txt功能.TabIndex = 0;
this.txt功能.Text = "";
//
// tabPage开源
//
this.tabPage开源.Controls.Add(this.tree开源);
this.tabPage开源.Location = new System.Drawing.Point(4, 26);
this.tabPage开源.Name = "tabPage开源";
this.tabPage开源.Padding = new System.Windows.Forms.Padding(3);
this.tabPage开源.Size = new System.Drawing.Size(872, 518);
this.tabPage开源.TabIndex = 1;
this.tabPage开源.Text = " 开源致谢 ";
this.tabPage开源.UseVisualStyleBackColor = true;
//
// tree开源
//
this.tree开源.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.tree开源.Dock = System.Windows.Forms.DockStyle.Fill;
this.tree开源.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F);
this.tree开源.FullRowSelect = true;
this.tree开源.HideSelection = false;
this.tree开源.HotTracking = true;
this.tree开源.ItemHeight = 26;
this.tree开源.Location = new System.Drawing.Point(8, 8);
this.tree开源.Name = "tree开源";
this.tree开源.ShowLines = false;
this.tree开源.ShowRootLines = false;
this.tree开源.Size = new System.Drawing.Size(856, 502);
this.tree开源.TabIndex = 0;
this.tree开源.NodeMouseClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.tree开源_NodeMouseClick);
//
// pnl底栏
//
this.pnl底栏.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(240)))), ((int)(((byte)(240)))), ((int)(((byte)(240)))));
this.pnl底栏.Controls.Add(this.lbl版权);
this.pnl底栏.Controls.Add(this.btn确定);
this.pnl底栏.Dock = System.Windows.Forms.DockStyle.Bottom;
this.pnl底栏.Location = new System.Drawing.Point(0, 480);
this.pnl底栏.Name = "pnl底栏";
this.pnl底栏.Size = new System.Drawing.Size(880, 48);
this.pnl底栏.TabIndex = 2;
//
// lbl版权
//
this.lbl版权.AutoSize = true;
this.lbl版权.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F);
this.lbl版权.ForeColor = System.Drawing.Color.DimGray;
this.lbl版权.Location = new System.Drawing.Point(18, 15);
this.lbl版权.Name = "lbl版权";
this.lbl版权.Size = new System.Drawing.Size(115, 17);
this.lbl版权.TabIndex = 0;
this.lbl版权.Text = "版权所有 © 2026";
//
// btn确定
//
this.btn确定.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btn确定.Location = new System.Drawing.Point(793, 10);
this.btn确定.Name = "btn确定";
this.btn确定.Size = new System.Drawing.Size(75, 28);
this.btn确定.TabIndex = 1;
this.btn确定.Text = "确定";
this.btn确定.UseVisualStyleBackColor = true;
this.btn确定.Click += new System.EventHandler(this.btn确定_Click);
//
// 关于软件
//
this.AcceptButton = this.btn确定;
this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 18F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(880, 680);
this.Controls.Add(this.tab内容);
this.Controls.Add(this.pnl页头);
this.Controls.Add(this.pnl底栏);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "关于软件";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "关于软件";
this.pnl页头.ResumeLayout(false);
this.pnl页头.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.pic图标)).EndInit();
this.tab内容.ResumeLayout(false);
this.tabPage功能.ResumeLayout(false);
this.tabPage开源.ResumeLayout(false);
this.pnl底栏.ResumeLayout(false);
this.pnl底栏.PerformLayout();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Panel pnl页头;
private System.Windows.Forms.PictureBox pic图标;
private System.Windows.Forms.Label lbl软件名;
private System.Windows.Forms.Label lbl版本;
private System.Windows.Forms.Label lbl简介;
private System.Windows.Forms.TabControl tab内容;
private System.Windows.Forms.TabPage tabPage功能;
private System.Windows.Forms.RichTextBox txt功能;
private System.Windows.Forms.TabPage tabPage开源;
private System.Windows.Forms.TreeView tree开源;
private System.Windows.Forms.Panel pnl底栏;
private System.Windows.Forms.Label lbl版权;
private System.Windows.Forms.Button btn确定;
}
}
+256
View File
@@ -0,0 +1,256 @@
// 关于软件:经典关于页模板(页头 图标/名称/版本/简介 + 选项卡 功能介绍|开源致谢 + 底部版权栏)
// 富文本用 SelectionColor/Font 逐段设置(■ 小节标题深蓝加粗、协议名按协议配色,纯 WinForms 无新依赖)
using System;
using System.Drawing;
using System.Windows.Forms;
namespace 成套报价软件
{
public partial class 关于软件 : Form
{
public 关于软件()
{
InitializeComponent();
this.BackColor = System.Drawing.Color.White;
// 页头排版在 Load 里做(AutoScale 完成后):版本号紧随软件名实际宽度、
// 简介对齐软件名左侧,避免高 DPI 下固定坐标互相压字;图标 Zoom 充满框
pic图标.SizeMode = PictureBoxSizeMode.Zoom;
this.Load += (s, e) =>
{
try
{
lbl版本.Left = lbl软件名.Right + 12;
lbl版本.Top = lbl软件名.Top + Math.Max(0, (lbl软件名.Height - lbl版本.Height) / 2);
lbl简介.Left = lbl软件名.Left;
lbl简介.Top = lbl软件名.Bottom + 4;
using (var ic = Icon.ExtractAssociatedIcon(Application.ExecutablePath))
pic图标.Image = new Bitmap(ic.ToBitmap(), pic图标.Width, pic图标.Height);
}
catch { }
};
填功能介绍();
填开源致谢();
}
// ---------- 富文本辅助:追加一段带样式的文本 ----------
private static void 追加(RichTextBox rtb, string text, Color color, bool bold, float size)
{
rtb.SelectionStart = rtb.TextLength;
rtb.SelectionLength = 0;
rtb.SelectionColor = color;
rtb.SelectionFont = new Font("Microsoft YaHei UI", size, bold ? FontStyle.Bold : FontStyle.Regular);
rtb.AppendText(text);
rtb.SelectionColor = rtb.ForeColor;
rtb.SelectionFont = rtb.Font;
}
private static void 标题(RichTextBox rtb, string text)
{
追加(rtb, text + "\r\n", Color.FromArgb(43, 87, 154), true, 10.5f); // 深蓝粗
}
private static void 条目(RichTextBox rtb, string text)
{
追加(rtb, text + "\r\n", SystemColors.WindowText, false, 9f);
}
private static void 协议(RichTextBox rtb, string name)
{
// 协议配色(徽章感):MIT 绿 / Apache 橙 / BSD 蓝 / ISC 紫 / MS-PL 青 / 公有领域 灰 / 微软条款 深灰
Color c = Color.Gray;
if (name.IndexOf("MIT", StringComparison.OrdinalIgnoreCase) >= 0) c = Color.FromArgb(33, 115, 70);
else if (name.IndexOf("Apache", StringComparison.OrdinalIgnoreCase) >= 0) c = Color.FromArgb(200, 102, 30);
else if (name.IndexOf("BSD", StringComparison.OrdinalIgnoreCase) >= 0) c = Color.FromArgb(43, 87, 154);
else if (name.IndexOf("ISC", StringComparison.OrdinalIgnoreCase) >= 0) c = Color.FromArgb(122, 82, 168);
else if (name.IndexOf("MS-PL", StringComparison.OrdinalIgnoreCase) >= 0) c = Color.FromArgb(0, 138, 158);
else if (name.IndexOf("公有领域", StringComparison.Ordinal) >= 0 || name.IndexOf("Public", StringComparison.OrdinalIgnoreCase) >= 0) c = Color.DimGray;
else if (name.IndexOf("微软", StringComparison.Ordinal) >= 0) c = Color.DimGray;
追加(rtb, "[" + name + "]", c, true, 9f);
}
private static void 空行(RichTextBox rtb) { 追加(rtb, "\r\n", SystemColors.WindowText, false, 4f); }
// ---------- 选项卡一:功能介绍 ----------
private void 填功能介绍()
{
var rtb = txt功能;
rtb.ReadOnly = false; // 追加着色需要,结束后置回只读
标题(rtb, "■ 项目管理");
条目(rtb, " 新建 / 修改 / 删除 / 复制项目,zip 项目包导入导出,最近项目自动恢复。");
空行(rtb);
标题(rtb, "■ 报价三表");
条目(rtb, " 图号 / 箱号 / 元件三级联动;虚拟模式万行秒开;编辑实时保存;");
条目(rtb, " 公式自动计算(成本价 / 报出价 / 利润 / 毛利率,公式可自定义);");
条目(rtb, " 批量粘贴 / 删除 / 撤销,行移动排序。");
空行(rtb);
标题(rtb, "■ CAD 扒图");
条目(rtb, " 网页 CAD 查看器打开 DWG/DXF 图纸;框选扒图号 / 箱号 / 扒元件;");
条目(rtb, " 箱号自动记图纸名,元件记图纸规格原文;F1/F2/F3 元件合并;");
条目(rtb, " 表格点行定位图上蒙版、删行删框。");
空行(rtb);
标题(rtb, "■ PDF 扒图");
条目(rtb, " PDF 渲染查看 + 框选 OCR,五种引擎:百度高精度 / 智谱 GLM-OCR /");
条目(rtb, " 百度千帆 PaddleOCR-VL / UApiPro / Umi-OCR 本地离线;自动纠正文本");
条目(rtb, " 方向;图形符号误读过滤;入库 / 合并 / 定位同 CAD 扒图。");
空行(rtb);
标题(rtb, "■ 元件库与选型");
条目(rtb, " 厂家 / 系列 / 价格网页选型;收藏一键跳转系列;选中即插入报价;");
条目(rtb, " 方案库独立库文件双击打开;用户库 / 柜体库管理与 CSV 导入导出。");
空行(rtb);
标题(rtb, "■ 计算与报表");
条目(rtb, " GCS 母排计算与铜排推荐;批量调系数;元件排序;甲方报表导出。");
空行(rtb);
标题(rtb, "■ 其它");
条目(rtb, " 停靠布局保存恢复;数据备份与恢复;功能区页签与窗口双向联动;登录门禁。");
rtb.ReadOnly = true;
rtb.SelectionStart = 0; rtb.SelectionLength = 0; rtb.ScrollToCaret();
}
// ---------- 选项卡二:开源致谢(TreeView 树形折叠,默认全部收起) ----------
/// <summary>建父节点:标题行「组件名 [协议] 用途」,子节点=版权/要求/查看全文。默认折叠。
/// 许可文件覆盖:同协议但需展示某组件自带许可证全文时指定(如 ZCode 的 Apache-2.0-ZCode.txt)。</summary>
private TreeNode 建节点(string 标题, string 协议名, string 副标题, string[] 子节点文本, string 许可文件覆盖 = null)
{
string text = 标题;
if (!string.IsNullOrEmpty(协议名)) text += " [" + 协议名 + "]";
if (!string.IsNullOrEmpty(副标题)) text += " —— " + 副标题;
var n = new TreeNode(text);
n.NodeFont = new Font("Microsoft YaHei UI", 9F, FontStyle.Bold);
n.ForeColor = SystemColors.WindowText;
foreach (var t in 子节点文本)
{
var c = new TreeNode(t);
c.NodeFont = new Font("Microsoft YaHei UI", 9F);
c.ForeColor = t.StartsWith("协议要求") || t.StartsWith("修改")
? Color.FromArgb(80, 80, 80) : Color.DimGray;
n.Nodes.Add(c);
}
// ★ 追加「查看许可证全文」链接子节点(按协议名映射 licenses 文件;协议为空不加)
string 许可文件 = 许可文件覆盖 ?? 许可证文件名(协议名);
if (许可文件 != null)
{
var link = new TreeNode("查看许可证全文 →");
link.NodeFont = new Font("Microsoft YaHei UI", 9F, FontStyle.Underline);
link.ForeColor = Color.FromArgb(43, 87, 154);
link.Tag = new string[] { 协议名, 许可文件 }; // 点击时取出
n.Nodes.Add(link);
}
return n; // 新节点默认收起,不调 ExpandAll 即全部折叠
}
/// <summary>协议名 → licenses 目录文件名(无对应文件的返回 null)。
/// Umi-OCR 的 "MIT / Apache-2.0" 双协议按 Apache-2.0 全文展示(MIT 全文见其它 MIT 条目)。</summary>
private static string 许可证文件名(string 协议名)
{
if (string.IsNullOrEmpty(协议名)) return null;
if (协议名.IndexOf("Apache", StringComparison.OrdinalIgnoreCase) >= 0) return "Apache-2.0.txt";
if (协议名.IndexOf("BSD", StringComparison.OrdinalIgnoreCase) >= 0) return "BSD-3-Clause.txt";
if (协议名.IndexOf("ISC", StringComparison.OrdinalIgnoreCase) >= 0) return "ISC.txt";
if (协议名.IndexOf("MS-PL", StringComparison.OrdinalIgnoreCase) >= 0) return "MS-PL.txt";
if (协议名.IndexOf("公有领域", StringComparison.Ordinal) >= 0) return "PublicDomain.txt";
if (协议名.IndexOf("微软", StringComparison.Ordinal) >= 0) return "WebView2-terms.txt";
if (协议名.IndexOf("MIT", StringComparison.OrdinalIgnoreCase) >= 0) return "MIT.txt";
return null;
}
private void tree开源_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
// 点「查看许可证全文 →」子节点 → 弹窗显示该协议标准全文
var arr = e.Node.Tag as string[];
if (arr != null && arr.Length == 2)
{
using (var dlg = new 许可证文本(arr[0], arr[1]))
dlg.ShowDialog(this);
}
}
private void 填开源致谢()
{
var tv = tree开源;
tv.BeginUpdate();
tv.Nodes.Clear();
// ---- 开源组件(13 项):子节点=版权声明 + 协议要求 ----
tv.Nodes.Add(建节点("WeifenLuo WinFormsUI Docking", "MIT", "停靠窗口框架",
new string[] { "Copyright © Weifen Luo 及贡献者",
"协议要求:分发时保留版权声明与许可证文本,其余无义务,可商用可闭源。" }));
tv.Nodes.Add(建节点("Zuby ADGV / AdvancedDataGridView", "MIT", "增强数据表格",
new string[] { "Copyright © 2017 Zuby",
"协议要求:分发时保留版权声明与许可证文本。" }));
tv.Nodes.Add(建节点("NPOI", "Apache-2.0", "Excel/OOXML 文件生成",
new string[] { "Copyright © 2008-2023 NPOI Contributors",
"协议要求:提供许可证副本并保留声明;有 NOTICE 文件须传递;修改文件须标注;含专利授权;不得用原作者商标推广。" }));
tv.Nodes.Add(建节点("DotNetZip", "MS-PL", "zip 压缩",
new string[] { "Copyright © 2008-2018 Dino Chiesa",
"协议要求:分发时保留版权/专利/商标/署名声明并随附许可条款;含专利授权,允许闭源。" }));
tv.Nodes.Add(建节点("ICSharpCode.SharpZipLib", "MIT", "zip/gzip 压缩",
new string[] { "Copyright © 2000-2022 SharpZipLib 贡献者",
"协议要求:分发时保留版权声明与许可证文本。" }));
tv.Nodes.Add(建节点("unvell.ReoGrid", "MIT", "表格控件",
new string[] { "Copyright © 2012 unvell Inc., Jing Lu",
"协议要求:分发时保留版权声明与许可证文本。" }));
tv.Nodes.Add(建节点("System.Data.SQLite", "公有领域", "SQLite 数据库驱动",
new string[] { "Public Domain · Robert Simpson 及 SQLite 团队贡献",
"协议要求:作者放弃版权,无附加义务。" }));
tv.Nodes.Add(建节点("pdfium (Google)", "BSD-3-Clause", "PDF 渲染引擎",
new string[] { "Copyright 2014-2024 The PDFium Authors",
"协议要求:源码/二进制分发保留版权声明与免责声明;不得以原作者名义为衍生品背书。" }));
tv.Nodes.Add(建节点("Microsoft Edge WebView2 运行时", "微软补充条款", "内嵌网页组件",
new string[] { "© Microsoft Corporation. 保留所有权利",
"协议要求:运行时可免费随本软件再分发,按微软《软件补充许可条款》使用。" }));
tv.Nodes.Add(建节点("Node.js", "MIT", "本地静态服务运行时",
new string[] { "Copyright Node.js contributors · OpenSSL: Copyright © OpenSSL Project Authors",
"协议要求:分发时保留版权声明与许可证文本(OpenSSL 按 Apache-2.0)。" }));
tv.Nodes.Add(建节点("ZCode(zai-org/ZCode 开源版)", "Apache-2.0", "AI 助手引擎(终端/网页 Agent)",
new string[] { "Copyright 2026 Z.AI Co., Ltd · 源码仓库 github.com/zai-org/ZCode",
"协议要求:提供许可证副本并保留声明;随附其 NOTICE 文件;修改文件须标注;含专利授权;不得用原作者商标推广。",
"本软件从其开源仓库官方源码构建并原样分发,未修改其代码。" },
"Apache-2.0-ZCode.txt"));
tv.Nodes.Add(建节点("mlightcad / CAD-Viewer", "MIT", "网页 CAD 引擎(含 three.js)",
new string[] { "Copyright © mlightcad · three.js: Copyright © 2010-2024 three.js authors",
"协议要求:分发时保留版权声明与许可证文本。本软件对其有修改,见下方修改说明。" }));
tv.Nodes.Add(建节点("Umi-OCR", "MIT / Apache-2.0", "本地离线 OCR(可选下载)",
new string[] { "Copyright © 2022 hiroi-sora · PaddleOCR: Copyright © Baidu Inc.",
"协议要求:MIT 项保留版权声明;PaddleOCR(Apache-2.0)另需保留 NOTICE 与修改标注。" }));
tv.Nodes.Add(建节点("Lucide", "ISC", "图标库",
new string[] { "Copyright © 2020 Lucide Labs",
"协议要求:与 MIT 等价,分发时保留版权声明与许可证文本。本软件对图标有换色调整,见下方修改说明。" }));
// ---- 修改说明与汇总 ----
tv.Nodes.Add(建节点("修改说明:mlightcad / CAD-Viewer —— 已修改", "", "",
new string[] {
"为适配本软件,对其网页构建产物(dist)作了以下修改并随软件分发:",
"修改① 字体与模板加载路径本地化(base-url 改为根相对,离线可用);",
"修改② 扒图完成消息(paPicked)附带当前图纸文件名,并在打开图纸时主动上报文档标题,供报价表格记录图纸名;",
"修改③ 静态服务脚本(server.cjs)响应头增加 Cache-Control: no-store。",
"其余代码未改动;原项目版权归 mlightcad 所有。" }));
tv.Nodes.Add(建节点("修改说明:Lucide —— 已修改", "", "",
new string[] {
"修改内容:图标 SVG 经描边配色替换与线宽调整(stroke-width 调细)后渲染为 PNG 使用,未改动图形本身。" }));
tv.Nodes.Add(建节点("其余组件 —— 未修改", "", "",
new string[] {
"WeifenLuo Docking、ADGV、NPOI、DotNetZip、SharpZipLib、ReoGrid、System.Data.SQLite、pdfium、WebView2 运行时、Node.js、Umi-OCR、ZCode 均为官方原版分发,未作任何修改。",
"另:Smart.CustomComponents 与 CJZZ.Controls 为本软件配套自研组件,非开源第三方库。" }));
tv.Nodes.Add(建节点("※ 共同底线", "", "",
new string[] {
"所有宽松协议都要求在分发时保留原作者的版权声明与许可证文本;",
"本软件的分发已包含并遵循以上要求。完整许可证文本以官方发布为准。" }));
tv.CollapseAll(); // 默认全部折叠
tv.EndUpdate();
}
private void pnl页头_Paint(object sender, PaintEventArgs e)
{
// 页头底部分隔线
using (var pen = new Pen(Color.FromArgb(220, 220, 220)))
e.Graphics.DrawLine(pen, 0, pnl页头.Height - 1, pnl页头.Width, pnl页头.Height - 1);
}
private void btn确定_Click(object sender, EventArgs e)
{
Close();
}
}
}
+80
View File
@@ -0,0 +1,80 @@
namespace 成套报价软件
{
/// <summary>许可证全文查看对话框:只读多行文本 + 确定按钮。</summary>
partial class 许可证文本
{
/// <summary>必需的设计器变量。</summary>
private System.ComponentModel.IContainer components = null;
/// <summary>清理正在使用的资源。</summary>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows 窗体设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.txt正文 = new System.Windows.Forms.TextBox();
this.btn确定 = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// txt正文
//
this.txt正文.BackColor = System.Drawing.SystemColors.Window;
this.txt正文.Dock = System.Windows.Forms.DockStyle.Fill;
this.txt正文.Font = new System.Drawing.Font("Consolas", 9F);
this.txt正文.Location = new System.Drawing.Point(12, 12);
this.txt正文.Multiline = true;
this.txt正文.Name = "txt正文";
this.txt正文.ReadOnly = true;
this.txt正文.ScrollBars = System.Windows.Forms.ScrollBars.Both;
this.txt正文.Size = new System.Drawing.Size(776, 496);
this.txt正文.TabIndex = 0;
this.txt正文.WordWrap = false;
//
// btn确定
//
this.btn确定.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btn确定.Location = new System.Drawing.Point(713, 514);
this.btn确定.Name = "btn确定";
this.btn确定.Size = new System.Drawing.Size(75, 28);
this.btn确定.TabIndex = 1;
this.btn确定.Text = "确定";
this.btn确定.UseVisualStyleBackColor = true;
this.btn确定.Click += new System.EventHandler(this.btn确定_Click);
//
// 许可证文本
//
this.AcceptButton = this.btn确定;
this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 18F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(800, 554);
this.Controls.Add(this.btn确定);
this.Controls.Add(this.txt正文);
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "许可证文本";
this.Padding = new System.Windows.Forms.Padding(12);
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "许可证全文";
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.TextBox txt正文;
private System.Windows.Forms.Button btn确定;
}
}
@@ -0,0 +1,60 @@
// 许可证文本查看窗:显示 licenses\ 目录下某协议的标准全文(缺失时给出官方地址提示)
using System;
using System.IO;
using System.Windows.Forms;
namespace 成套报价软件
{
public partial class 许可证文本 : Form
{
/// <param name="协议名">窗口标题用,如 "MIT License"。</param>
/// <param name="文件名">licenses 目录下的文件名,如 "MIT.txt"。</param>
public 许可证文本(string 协议名, string 文件名)
{
InitializeComponent();
this.BackColor = System.Drawing.Color.White;
Text = "许可证全文 - " + 协议名;
try
{
string p = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "licenses", 文件名);
if (File.Exists(p))
{
txt正文.Text = File.ReadAllText(p, System.Text.Encoding.UTF8);
}
else
{
txt正文.Text = "许可证文本文件缺失: licenses\\" + 文件名 +
"\r\n\r\n请访问官方发布页查看完整文本:" + 官方地址(文件名);
}
}
catch (Exception ex)
{
txt正文.Text = "读取许可证文本失败: " + ex.Message;
}
txt正文.SelectionStart = 0;
txt正文.SelectionLength = 0;
}
private static string 官方地址(string 文件名)
{
switch (文件名)
{
case "MIT.txt": return "https://opensource.org/license/MIT";
case "Apache-2.0.txt": return "https://www.apache.org/licenses/LICENSE-2.0";
case "Apache-2.0-ZCode.txt": return "https://github.com/zai-org/ZCode/blob/main/LICENSE";
case "BSD-3-Clause.txt": return "https://opensource.org/license/BSD-3-Clause";
case "ISC.txt": return "https://opensource.org/license/ISC";
case "MS-PL.txt": return "https://opensource.org/license/MS-PL";
case "PublicDomain.txt": return "https://sqlite.org/copyright.html";
case "WebView2-terms.txt": return "https://learn.microsoft.com/microsoft-edge/webview2/";
default: return "https://opensource.org/licenses";
}
}
private void btn确定_Click(object sender, EventArgs e)
{
Close();
}
}
}