【问题标题】:Cannot add rows when the DataGridView control is in virtual mode?DataGridView 控件处于虚拟模式时无法添加行?
【发布时间】:2011-06-20 22:35:04
【问题描述】:

当我尝试在虚拟模式下向 DataGridView 添加新行时:

dataGridViewX1.Rows.Add(new string[] { "Parker", "Seattle" });

出现以下异常:

操作无效时 DataGridView 控件处于虚拟状态 模式?

【问题讨论】:

    标签: c# winforms datagridview


    【解决方案1】:

    DataGridViewVirtual mode (DataGridView.VirtualMode = true) 中时,这意味着DataGridView 的内容是通过DataGridView 上公开的事件从其自身以外的来源提供的。如果您打算让 DataGridView 处于虚拟模式,则需要将新信息添加到底层源,然后告诉 DataGridView 还有另一行,如下所示:

    // add information to the underlying source
    this.dataGridView.RowCount++;
    

    如果您不打算在虚拟模式下使用DataGridView,您可以通过将DataGridView.VirtualMode 设置为false 来关闭虚拟模式。

    【讨论】:

      【解决方案2】:

      您需要使用数据源添加新行,它会自动显示在DataGridView中。

      【讨论】:

        【解决方案3】:

        您可能已经完成了其他问题所建议的所有操作,但将 YourDataGridView.DataSource 设置为某个位置。

        不能设置为 virtual,否则当你尝试设置 RowCount 时会得到类似的消息,而当你尝试添加时会得到准确的消息。

        如果您迄今为止“误用”DataSource 作为事件处理程序可用于寻址数据源的“邮箱”实例变量,请考虑将其填充到 Tag 属性中,并使用该属性中所需的引用(使用适当的类型转换)。

        【讨论】:

          猜你喜欢
          • 2011-06-11
          • 2014-10-17
          • 2012-01-05
          • 2011-04-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多