问题标签 [datagridviewcolumn]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
6633 浏览

c# - 如何检测 DataGridView.RowValidating 事件何时来自用户交互与 BindingSource 列表更改?

我终于找到了一个我整个周末都在努力解决的错误,但是我看不到真正解决它的方法 - 就是以一种干净的方式。

情况是我有一个绑定到业务对象列表的 DGV 控件。其中一列未绑定到 DataSource,我已经连接了 CellParsing 和 CellFormatting 事件来处理此单元格的数据的持久性。我基本上绕过了 .net 数据绑定并实现了我自己的糟糕版本。这不是故意的,它是真正的旧代码,具有复杂的解析和格式化要求,我错误地实现了基于未绑定列的解决方案。我现在知道处理这个问题的正确方法,并且已经修复了我的代码,但是我仍然想知道如何以另一种方式解决这个错误。

我处理 RowValidating 事件并对整个行进行最终验证,以确保一切正常。当然,如果出现问题,我会取消验证并且未提交该行。当用户通过 UI 交互编辑和添加行时,这一切都可以正常工作,但在设置 DataSource 时会产生问题。问题似乎是当 DGV 更新其内部列表并构建行时未调用 CellFormatting,或者至少在触发验证事件之前未调用它。这会导致 RowValidating 处理程序从 Unbound 列中提取一个空值(因为尚未调用 CellFormatting 并设置该值)。

我正在刷新我对 DGV 的了解,并认为处理 CellValueNeeded 事件可能是票,但设置 DataGridViewCellValueEventArgs.Value 并没有像我希望的那样触发 CellFormatting 事件。

我一直在考虑如何处理这种情况,我想出的唯一方法是检测何时从 UI 事件触发验证,而不是初始绑定或绑定列表更改。这不仅是一个 hacky 解决方案,而且看不到它是如何完成的。

我创建了一个完整的示例应用程序来说明问题。我真的很想知道你们中的一些人将如何解决这样的问题。这里很可能有主要的设计气味。

0 投票
2 回答
6253 浏览

c# - DataGridView 中的计算列绑定到一个对象

我的 UI 包含一个AutoCreateColumns= false绑定到我的业务对象列表的 datagridview ()。假设我的对象包含 2 列 - 价格和数量 - 我想在我的网格中添加一个新列 - 总计 - 将计算哪个值 - 价格 * 数量,不修改我的业务对象。

是否可以?

0 投票
2 回答
8510 浏览

c# - 获取和设置 DataGridView 的排序(列和升序/降序)

我有一个小问题。我需要保存排序(按哪个列和升序或降序)并在程序的下一次启动时加载它。获取当前选定的列是没有问题的,我这样做是通过

并将数据保存在我的设置中。设置这个属性也没有问题:

但我还需要保存并设置升序或降序属性。我该怎么做呢?有没有办法使用 dataGridView.SortedColumn 获取 ListSortDirection?或者如果dataGridView按升序或降序排序,是否有更好的解决方案?

谢谢和问候!瑞人

0 投票
1 回答
1365 浏览

c# - 在属性窗口中更改时自定义属性不会保存

我已经为 DataGridView 创建了一个自定义列,原因是我想在列中添加一个属性(类型)。我右键单击 DataGridView 并选择“编辑列...”。然后,当我选择作为我的自定义列类型的列时,我可以编辑属性,但是如果我在编辑后喜欢“确定”,然后再次转到“编辑列...”,我分配给我的属性的值离开了。

这是我的代码:

以及属性窗口的图像:

属性窗口的图像

有人可以告诉我我做错了什么,或者我需要添加什么以便当我更改属性窗口中的值时,该值被分配给属性?

0 投票
2 回答
635 浏览

c# - Excel工作表单元格显示日期和时间使用c#

我正在将 Excel 工作表导入 DataGridView。我有一个单元格的日期为 05-06-2017。但是在 DataGridView 下显示时,它显示 05-06-2017 AM 12:00:00。

你能帮我如何只显示日期。

谢谢 !

0 投票
1 回答
73 浏览

.net - 为什么 DataGridView 列相互堆叠?

在 winform 上,我有一个 DataGridView 和其中的列。出于某种奇怪的原因,当我运行我的程序时,这些列在运行时彼此堆叠在一起。无论我做什么,都不会改变。我不知道我是在设置某些属性还是什么。

在设计期间:

在此处输入图像描述

在运行期间:

在此处输入图像描述

0 投票
2 回答
4341 浏览

c# - DataGridView autoComplete 组合框列不保留初始单元格离开时的值

我有一个带有 autoComplete 组合框列的绑定 dataGridView ,并且自动完成功能正在工作,只是观察到一种令人讨厌的行为。

当我第一次在自动完成单元格中键入文本并使用 tabKey 移动到下一个单元格时,我的选择不会保留,我选择的内容被清除并且自动完成单元格保留为空。如果 ii 立即使用左箭头键返回到该自动完成单元格并输入文本,我选择的任何内容都会保留,没有任何问题。

所以,我遇到的问题是让单元格保留我的第一个初始选择,现在唯一的解决方法是 Tab 到下一个单元格,然后返回到这个有问题的自动完成组合框单元格并全部输入。在这一点上,它起作用了。

是否有一些事件我应该处理以在单元格离开时提交我选择的文本?

代码:

编辑:在下面的 CellLeave 上,即使我做出了选择,值也会返回为 null。

0 投票
1 回答
3017 浏览

c# - 如何使用具有不同值列表的组合框单元填充文本框和组合框的 DataGridView

我按顺序有三列,文本框,组合框和文本框:

它们又在 datagridview 中,如下所示:

稍后我将尝试为每个组合框单元格添加不同的值,如下所示:

这会产生一个数据网格,其中第一列和最后一列已填充,并且组合框列为空。带有我处理的数据错误。消息是:

我已经阅读了大部分帖子,但找不到解决方案。

我尝试过像这样设置数据源:

仍然得到空的组合框列,并带有数据错误说

我认为这非常棘手,因为我为每个组合框单元添加了不同的值。

任何人都可以,请帮助我如何完成这项工作。

/最好的

0 投票
1 回答
48 浏览

c# - datagridvie 在保存更新或删除操作时刷新

我正在使用 c# 中的数据网格,我希望当我使用表单保存、更新或删除数据库时,网格将在这些操作上刷新(更新)我应该怎么做才能实现这一点请帮助谢谢

0 投票
2 回答
6126 浏览

c# - 使用对象列表和复选框列创建一个简单的 DataGridView (C#)

我看过很多地方,我正在努力做这件所谓的简单事情。我有一个 Windows 窗体,我必须在该窗体上以这种形式显示一个简单的 DataGridView:

| (复选框列) | 文件路径 | 文件状态 |

现在,有几个问题。我需要绑定到它们的数据位于对象列表中,如下所示:

  • 是否有任何有效的方法可以将其直接绑定到 DataGridView,以便列表中 Object 的不同成员绑定到不同的列,并且每个都有复选框?
  • 我看到了将复选框列添加到数据网格的示例,但没有一个显示如何将其添加到“标题”行,以便它可以充当“选中所有”/“取消选中所有”框。

如何实现这一目标的任何帮助都会很棒!我确实在 C# 中编写了简单的应用程序,但从未使用过数据网格等。:(

谢谢!