问题标签 [datagridview]

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 投票
3 回答
6733 浏览

c# - 如何在 DataGridViewCell 中托管控件以进行显示和编辑?

我已经看到How to: Host Controls in Windows Forms DataGridView Cells,它解释了如何在 DataGridView 中托管用于编辑单元格的控件。但是我怎样才能拥有一个显示单元格的控件呢?

我需要在同一个单元格中显示一个文件名和一个按钮。我们的 UI 设计师是图形设计师而不是程序员,所以我必须将代码与他所绘制的内容相匹配,无论这是否可能 - 或明智 - 与否。我们正在使用 VS2008 并用 C# 编写 .NET 3.5,如果这有所作为的话。

更新: 'net 建议创建一个自定义 DataGridViewCell 作为第一步托管面板;有人这样做吗?

0 投票
3 回答
3788 浏览

c# - 为什么 Columns.Insert 不更新 DataGridView (C#) 中的 DisplayIndex?

我以编程方式在 DataGridView 中插入一列(即,未绑定到任何数据表/数据库),如下所示:

我发现有时使用这种方法我的列在视觉上是乱序的。一种解决方法是事后手动设置列的 DisplayIndex 属性。添加此代码“修复它”,但我不明白它为什么会这样。

顺便说一句,我的网格可以动态增加其列数。我想以块的形式增长它,所以每个插入不需要列分配(和相关的初始化)。然后将通过从末尾抓取未使用的列,将其插入所需位置并使其可见来添加每个“新”列。

0 投票
2 回答
2002 浏览

c# - 如何防止 DataGridView 共享行?

我制作了一个自定义的 DataGridViewCell,它显示了一个自定义控件而不是单元格;但是如果 DataGridView 使用共享行,那么自定义控件实例也是共享的,所以你会得到奇怪的行为(例如,将鼠标悬停在按钮上会突出显示所有按钮)。另外,我无法访问 DataGridViewCell.Selected 属性,所以我不知道该行绘制什么颜色。

如何防止 DataGridView 共享行?我知道我可以使用 Rows.Add(object[]) 覆盖添加行,但是第一行仍然是共享的(即具有索引-1),所以颜色问题仍然存在。

我需要能够告诉 DataGridView 不要共享包含自定义单元格的行。可以用属性来完成吗?可以做到吗?

0 投票
2 回答
5796 浏览

.net - DataGridView 组合框

如何访问 DataGridView 中特定行中组合框的项目集合?

我正在按如下方式填充组合:

我希望能够为添加到网格的每个新行设置一个默认值,我还希望能够根据其他业务逻辑更改组合中的值。我意识到我可以直接设置单元格值,但我想避免将值硬编码到系统中并依赖数据库来填充。

我敢肯定它一定是直截了当的,但它让我望而却步......

0 投票
2 回答
3672 浏览

c# - 如何阻止 DataGridView 自动选择一行?

我在 TabPage 中有一个 DataGridView 控件,我监听 SelectionChanged 事件。当 TabPage 被选中时,DataGridView 选择第一行并触发 SelectionChanged 事件。如何阻止它自动选择一行?

0 投票
7 回答
19258 浏览

.net - 如何手动下拉 DataGridViewComboBoxColumn?

我的 WinForms 应用程序中有一个 DataGridView 和一个 DataGridViewComboBoxColumn。我需要手动下拉(打开)这个 DataGridViewComboBoxColumn,比如说在单击按钮之后。

我需要这个的原因是我已将 SelectionMode 设置为 FullRowSelect 并且我需要单击 2-3 次才能打开组合框。我想单击组合框单元格,它应该立即下拉。我想用 CellClick 事件来做这件事,还是有其他方法?

我正在谷歌和 VS 帮助中搜索,但我还没有找到任何信息。

有人可以帮忙吗?

0 投票
1 回答
2432 浏览

.net - 将自定义 ContextMenuStrip 与 DataGridView 中的系统编辑上下文菜单合并

我在 VB.NET 应用程序中有一个 DataGridView,我仅限于单元格选择。该控件有两列,第一列不可编辑,第二列可编辑。我有一个 ContextMenuStrip,它提供了一些额外的功能,并且当可编辑单元格收到右键单击且未处于编辑模式时,我能够使其出现。基于Microsoft 论坛中的示例,我现在可以在可编辑单元格在编辑模式下收到右键单击时显示上下文菜单。该代码如下:

但是,这会完全覆盖编辑控件的系统上下文菜单。如何将我的上下文菜单条 ( ContextMenuStrip1) 与系统上下文菜单合并?

有关更多信息,我使用的是 VS2008,但目标是 .NET 2.0 平台。

0 投票
4 回答
21002 浏览

.net - 为什么 DataGridView 上的 DoubleBuffered 属性默认为 false,为什么它受到保护?

我们遇到了 DataGridViews 的性能问题,其中重绘速度非常慢,并在此处找到了解决方案来创建派生类型并在控件上启用双缓冲。(派生类型是必需的,因为 DoubleBuffered 属性受到保护)

将 DoubleBuffered 属性设置为 true 似乎没有任何缺点。

0 投票
4 回答
3121 浏览

datagridview - 从 BackgroundWorker 将结果“流式传输”到 DataGridView

有没有办法将一组结果(例如 DataTable)从 BackgroundWorker“流式传输”到 DataGridView。我想要做的是查询数据,并将结果填充到 DataGridView(如 SQL Server Management Studio 中的查询网格结果)。我的第一个想法是使用 BackgroundWorker(以避免 UI 冻结效果),但是当 BackgroundWorker 正在加载结果时,仍然会有一个可感知的“滞后”。

解决此问题的最佳方法是什么?

0 投票
7 回答
109090 浏览

c# - 更新数据源时刷新 DataGridView

DataGridView更新基础数据源时刷新 a 的最佳方法是什么?

我经常更新数据源,并希望在结果发生时向用户显示结果。

我有这样的东西(并且它有效),但设置DataGridView.DataSourcetonull似乎不是正确的方法。