基线:全量源码首提(D1 版本控制落地,含第一轮优化 B1-B4/A1/A4/缩放修复)
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace 成套报价软件
|
||||
{
|
||||
/// <summary>
|
||||
/// 批量插入询问 的交互逻辑(2026-10-01):
|
||||
/// 多选箱号插入元件时的确认框(用户已删"仅当前行"按钮,2026-10-01)。
|
||||
/// 返回 DialogResult:Yes=全部插入 / Cancel=取消
|
||||
/// 勾选状态读 属性 不再询问(勾选且点了 Yes 才会被调用方记忆)
|
||||
/// 用法:using (var f = new 批量插入询问 { 消息 = "..." }) { f.ShowDialog(父窗体); ... }
|
||||
/// 布局在 批量插入询问.Designer.cs,可用 SD 设计器打开微调。
|
||||
/// </summary>
|
||||
public partial class 批量插入询问
|
||||
{
|
||||
/// <summary>构造函数:必须调用 InitializeComponent 初始化设计器控件
|
||||
/// ★ 修复(2026-10-01):此前漏写构造函数,控件全为 null,设置消息时抛
|
||||
/// NullReferenceException——这就是"点了新建元件没反应不弹窗"的根因。</summary>
|
||||
public 批量插入询问()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
/// <summary>消息文本(设置后按内容自适应标签与窗体高度)。</summary>
|
||||
public string 消息
|
||||
{
|
||||
get { return lbl消息.Text; }
|
||||
set
|
||||
{
|
||||
lbl消息.Text = value ?? "";
|
||||
自适应高度();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>"以后不再询问"复选框勾选状态。</summary>
|
||||
public bool 不再询问
|
||||
{
|
||||
get { return chk不再询问.Checked; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 按消息文本实际高度自适应:标签变高/变矮时,复选框与按钮行跟着移动,
|
||||
/// 窗体高度同步调整(设计器基准布局,运行时只纵向平移,不动横向布局)。
|
||||
/// </summary>
|
||||
private void 自适应高度()
|
||||
{
|
||||
try
|
||||
{
|
||||
lbl消息.AutoSize = false;
|
||||
int textH = TextRenderer.MeasureText(lbl消息.Text, lbl消息.Font,
|
||||
new Size(lbl消息.MaximumSize.Width, 0),
|
||||
TextFormatFlags.WordBreak | TextFormatFlags.TextBoxControl).Height;
|
||||
int delta = textH - lbl消息.Height;
|
||||
if (delta == 0) return;
|
||||
|
||||
lbl消息.Height = textH;
|
||||
chk不再询问.Top += delta;
|
||||
btn取消.Top += delta;
|
||||
btn全部插入.Top += delta;
|
||||
// 解除设计器设的最大/最小尺寸限制后调整窗体高度
|
||||
this.MaximumSize = new Size(0, 0);
|
||||
this.MinimumSize = new Size(0, 0);
|
||||
this.Height += delta;
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user