为DataGridView覆盖OnCellMouseDown-类型不存在错误

时间:2018-08-08 17:05:48

标签: c# inheritance datagridview

我试图禁用在单击datagridview左上角标题单元格时发生的“选择所有单元格”功能。关于另一个SO问题(here,我试图通过继承DataGridView然后重写OnCellMouseDown事件来执行此操作,如果单击左上角的单元格则什么也不做。

在MainForm.cs中

 namespace MainProjectName
 {
     public partial class MainProjectName : Form
     {
        **misc form code here**
     }
 }

然后创建了一个新的替代DGV类OverrideTest.cs

 namespace MainProjectName
 {
     public partial class OverrideTest : DataGridView
     {
         protected override void OnCellMouseDown(DataGridViewCellMouseEventArgs e)
         {
             if (e.RowIndex == -1 && e.ColumnIndex == -1) return;
             base.OnCellMouseDown(e);
         }
     }
 }

使用此设置,新的“ OverrideTest”将显示在工具箱中,并且我可以将自定义DataGridView成功拖动到表单上。但是,它无法编译并显示错误:

  

CS0426类型名称“ OverrideTest”在类型“ MainProjectName”中不存在

我在做什么错,您将如何解决这种类型的不存在错误?

1 个答案:

答案 0 :(得分:0)

找出问题所在。

用于命名空间的名称与主表单类的名称匹配。

通过更改主表单类的名称和所有关联的引用,我可以摆脱此错误并使之正常工作。