DevExpress.XtraSpreadsheet.SpreadsheetControl 首行禁止修改
https://www.cnblogs.com/yellow3gold/
最近使用SpreadsheetControl 的时候,由于第一行是标题行,用户不想修改标题行的内容。最开始的时候我设置了SpreadsheetControl的CellBeginEdit事件失效;
1 | spreadsheetControl.CellBeginEdit += CellBeginEdit; |
private void CellBeginEdit(object sender, SpreadsheetCellCancelEventArgs e) { if (e.RowIndex == 0) e.Cancel = true; }
这样操作之后确实不能直接编辑首行的单元格了,但是如果你通过粘贴的方式去修改首行,还是会被修改掉,于是我又加了一段代码屏蔽了首行粘贴的修改;
1 | spreadsheetControl.CopiedRangePasting += CopiedRangePasting; |
private void CopiedRangePasting(object sender, CopiedRangePastingEventArgs e) { if (e.TargetRange.TopRowIndex == 0) e.Cancel = true; }
更新 2022年7月14日08点48分
以下代码防止用户按Delete键删除
protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { try { if (keyData == Keys.Delete) { if (spreadsheetControl == null) { return base.ProcessCmdKey(ref msg, keyData); } Range range = spreadsheetControl.ActiveWorksheet.Selection; if (range[0].RowIndex == 0) { return true; } return base.ProcessCmdKey(ref msg, keyData); } return base.ProcessCmdKey(ref msg, keyData); } catch (Exception ex) { MessageBox.Show(ex.Message); } return true; }
好了,加上这几段代码,就可以实现DevExpress.XtraSpreadsheet.SpreadsheetControl 首行禁止修改
分类:
技术
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异