DataGridViewComboBox - 显示“InActive” DataGridView 中的值

发布于 2024-07-16 10:32:17 字数 611 浏览 10 评论 0原文

我有一个包含组合框(DataGridViewComboBoxColumn)的DataGridView。 该组合框填充了一组设置值。 这些设置值可以被停用,以便在组合框中仅显示活动值,但是,使用非活动值的现有条目(记录)仍必须显示。

我可以成功地循环网格中的项目,并且如果记录具有不再活动的值(即 DataGridViewComboBoxCell 项目的一部分),我只需将其添加到该 DataGridViewComboBoxCell 的项目中。

问题:

我无法找到放置此代码的位置,这样我就不会收到可怕的“DataGridViewComboBoxCell 值无效”。

例如,我可以将此代码放入 DataGridView 的 Paint 事件中,并且可以完美地实现网格功能。 编辑/更新值没有问题,在显示方面也没有任何问题(始终显示非活动值)...但是,它仍然抛出“DataGridViewComboBoxCell 值无效”。 错误。

问题:

在将活动值添加到组合框 (DataGridViewComboBoxColumn) 之后、在绑定记录之前,我可以在哪里添加代码(或如何)添加“非活动”值以避免出现此问题错误?

I have a DataGridView that contains a combo box (DataGridViewComboBoxColumn). This combo box is populated with a set of setup values. These setup values can be inactivated such that only active values are displayed in the combo box, however, existing entries(records) that use the inactive values must still be displayed.

I can successfully loop over the items in the grid and if a record has a value that is no longer active (i.e. part of the DataGridViewComboBoxCell items), I simply add it to the items for that DataGridViewComboBoxCell.

Problem:

I am unable to find a place to put this code such that I do not get the dreaded 'DataGridViewComboBoxCell value is not valid.'

For example, I can put this code into the Paint event of the DataGridView and the grid functions perfectly. No issues with editing/updating values nor do I have any issues in terms of display (inactive value is always shown)... However, it still throws the 'DataGridViewComboBoxCell value is not valid.' error.

Question:

Where can I add code (or how) to add an 'inactive' value after the active values have been added to the combo box (DataGridViewComboBoxColumn), but before the records are bound to avoid getting this error?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

百合的盛世恋 2024-07-23 10:32:17

如果只是捕获 datagridview 错误而不对其执行任何操作呢?

void dataGridView1_DataError(object sender, DataGridViewDataErrorEventArgs e)
{
   e.Cancel = true;
}

// Add code in user interface
dataGridView1.DataError += 
    new DataGridViewDataErrorEventHandler(dataGridView1_DataError);

What about just catching the datagridview error and doing nothing with it.

void dataGridView1_DataError(object sender, DataGridViewDataErrorEventArgs e)
{
   e.Cancel = true;
}

// Add code in user interface
dataGridView1.DataError += 
    new DataGridViewDataErrorEventHandler(dataGridView1_DataError);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文