C#中如何禁用DataGridView行调整大小及行水平线点击?
禁用DataGridView行大小调整及行分隔线点击事件的解决方案
1. 全局禁用行高调整基础设置
先确保在设计时或运行时设置核心属性:
// 全局禁止用户手动调整所有行的高度 dataGridView1.AllowUserToResizeRows = false; // 禁用行头宽度调整(若不需要行头可调整) dataGridView1.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.DisableResizing;
2. 修正单独行的权限设置
如果全局设置无效,大概率是部分行的Resizable属性被单独开启,需遍历强制禁用:
foreach (DataGridViewRow row in dataGridView1.Rows) { // 强制禁用当前行的手动调整权限 row.Resizable = DataGridViewTriState.False; }
3. 拦截行分隔线的交互事件
即使完成上述设置,部分场景下用户点击行分隔线仍可能触发调整,需通过事件拦截彻底禁用:
// 拦截行分隔线鼠标按下事件,阻断后续操作 private void dataGridView1_RowDividerMouseDown(object sender, DataGridViewRowDividerMouseEventArgs e) { e.Handled = true; } // 拦截行分隔线双击事件,阻止自动调整行高 private void dataGridView1_RowDividerDoubleClick(object sender, DataGridViewRowDividerDoubleClickEventArgs e) { e.Handled = true; }
4. 排查自动行高模式干扰
若开启了自动调整行高模式,可能会覆盖手动禁用设置,可根据需求调整:
// 设置为完全由代码控制行高(可选,根据业务场景取舍) dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.None;
内容的提问来源于stack exchange,提问作者ABOU-YOUSSEF EL Mehdi
相关产品推荐
相关产品推荐

