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 首行禁止修改

 

posted @   新*  阅读(514)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异

喜欢请打赏

扫描二维码打赏

支付宝打赏

点击右上角即可分享
微信分享提示