问题标签 [datagridviewrow]

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 回答
146 浏览

c# - 在datagridview中为按钮设置值

我通过以下代码将值设置为表单加载中 datagridview 中的按钮:

但运行完成后,按钮文本为空。

0 投票
1 回答
43 浏览

c# - Recover values and pass to a GridViewRow

I have a GridViewRow[] that has some data,this data is for example 4 rows that was selected from previous page (picture 1)

enter image description here

After the checkbox marked,the user has to send to a confirmation page,in this page i need to generate another gridviewRow that only has the 4 selected.i'm using a session to pass the values to another page,but i cant make it work,i doing wrong in the foreach.This is the code.

ASCX

CS - The commented part is things i alrady tried but without sucess.

0 投票
1 回答
31 浏览

c# - 如何在datagridview中仅删除行中的数据(防止行被删除)

我试图删除行中的数据值,但它也删除了 DataGridView 中的行。

代码 :

spSumGrid.Sheets[0].Rows.Clear();//删除表格中的Data&行

0 投票
3 回答
1522 浏览

vb.net - 数据源更改时更新 Datagridview

我有一个绑定到数据表的 Datagridview。我想根据单元格的值隐藏或显示一行,例如,如果单元格值为“N”,则使该行可见,否则如果为“Y”,则隐藏该行。

数据列设置为:

我还处理了 Datagridview 的 CellValueChanged 事件,如下所示:

但是当我以编程方式将值更改为“Y”时(我可以看到网格中的值已更改),该行仍然可见。我还在事件处理程序中放了一个中断,它没有被触发!所以问题是,当我将单元格值更改为“Y”时,如何隐藏 datagridviewrow?

编辑

只是为了更清楚地解决手头的问题,这就是我以编程方式更新网格数据源的方式:

我可以直接更新网格并因此触发 cellvaluechanged 事件,但是这会引发 CurrencyManager 错误,因此每次单元格值更新时都必须暂停绑定然后恢复绑定到网格。这有效,但即使对于一个小数据集(即使通过反射实现双缓冲)也是如此。

0 投票
1 回答
181 浏览

c# - 如何在 DataGridView 中找到“附加”到 DataTable 中的 DataRow 的 DataGridViewRow?

在我的示例中,我得到了:

现在我想从 DataTable 中“挑选”一些 DataRows 并在 DataGridView 中突出显示它

任何想法如何做到这一点?有可能吗?

0 投票
2 回答
87 浏览

c# - 仅与 datagridview 行的数据库连接

我需要逐行填充datagridview。即,如果当前选择了第 3 行,则需要在第 3 行填写数据(我的查询总是返回单行)。每一行都一样。

一些喜欢的东西

希望我把我的要求告诉你

他们有什么方法可以实现它....在此先感谢....

0 投票
1 回答
114 浏览

c# - 扩展 DataGridViewRow 以在列下具有容器跨度

我想知道是否可以扩展 aDataGridVewRow以便我可以像 aPanel这样的容器跨越通常的列。这将填充另一个填充有子数据的 DataGridView。面板将通过按钮显示/隐藏。

此 DataGridView 将显示具有展开/折叠功能的主-详细信息、父/嵌套子级。

也许 DataGridViewRow 不是旨在扩展的正确对象,但希望有人能指出我正确的方向。

我只关注能够添加容器,仅此而已。

是否可以?如果是这样,从哪里开始?

0 投票
1 回答
737 浏览

c# - C# DataGridView:将多行合并为一但保留原件

首先:一旦我完成,我将自己提供这个问题的答案。
但是你可以在我的路上帮助我,我会感谢你的所有建议。

我有一个 DataGridView 不同的行属于一起。我的问题是找到一种合适的方式来显示和使用这些连接的行。

我的第一个想法是让每一行保持独立,但这有一些缺点:

  • 如何清楚地表明行属于一起?
    我可以添加另一列,其单元格对连接的行显示相同的数字,但这不容易看到并且需要另一列。
    我在这里的解决方案是所有连接的行都具有相同的背景颜色,并且颜色会在每组连接行的白色和浅灰色之间变化。

  • 如何使用连接的行?一旦我选择了一组中的一行,我就必须通过提取信息(保存在单元格的标签或隐藏单元格中)来分析这一行,哪些行属于一起并选择它们。在 DataGridView 中向上/向下移动行的工作更大:我还必须分析相邻的行集以查看我必须移动多远。

因此,我决定创建一个DataGridViewMultiRow.
完成后,我将在此处发布该课程的完整代码作为答案。

它将继承自DataGridViewRow("DGVR") 并存储单个 DGVR 或其他多行的列表,并通过使用自己的代码绘制行的单元格将它们显示为一个。但是,我仍然需要找出为此目的使用哪些事件。MSDN 建议使用DataGridView.RowPrePaint,但我更愿意使用绑定到 DGVR 本身的事件。或许我会分析一下DataGridViewRow.Paint()的源码,自己写个方法……

当添加到多行时,单行将变得不可见(它们可以通过滥用概念再次切换为可见,但 .net 本身有很多内容无法防止滥用;也许我什至不切换到不可见,所以这是用户的责任)。
通过强制每个 DGVR 成为与多行相同的 DGV 的一部分,可以简单地避免多行中的递归,并且因为每行只能添加到一个 DGV 并且只能添加一次,所以我不必检查递归了。

现在我正在努力如何实现内部行列表。我正在考虑使用 .net DataGridViewRowCollection,但我发现它的操作与自身紧密相关DataGridView:一个 DGV 只能有一个 DGVRColl,但每个 DGVRColl 指的是一个 DGV。所以在我的每个 DGVMultiRow 中都会有半连接的 DGVRColl。
我想问这是否会导致问题,但我已经发现在实例化 DGVRColl 时我必须提供一个 DGV,而在调用 DGVMultiRow ctor 时我没有这个 DGV。此外,当使用 DGVRColl 并为其提供公共 get 属性时,我只能挂钩到 'CollectionChanged' 事件并且无法控制单个操作,例如Add()and Remove()。所以我将使用一个简单的私人列表。

继续#1
我完成了主要工作,看起来已经很不错了:

在此处输入图像描述

我仍然需要修复细节,比如在移动滚动条时正确放置文本和其他小东西。

我决定不覆盖,DataGridViewRow.Paint()因为那个有太多的内部连接。所以我首先尝试使用CellPaintingDGV 的事件,这是一个好的开始。但是我需要同时拥有该行的所有单元格的信息,所以我继续DataGridView.RowPrePaint()按照 MSDN 的建议覆盖,请参见上面的链接。这真的很好用。

未完待续。

0 投票
0 回答
61 浏览

c# - 为什么插入 DGV 后无法访问新 DataGridViewRow 的单元格值?

我知道有几种方法可以创建一个新的DataGridViewRow,请参阅如何以编程方式向 datagridview 添加新行
我目前正在创建一个继承自 DGVR 的类,因此我不能让 DGV 通过仅添加值来创建它,我必须创建它是手动的。
但是,我的代码(用 C++/CLI 编写)失败了ArgumentOutOfRangeException,所以我尝试使用普通的 DGVR,但它也失败了(方法 1)。然后我找到了一个解决方案(方法2),但我不明白它为什么会起作用。
将原始 DGVR 添加到 DGV 后是否以某种方式无效?

0 投票
0 回答
87 浏览

c# - DataGridView:仅为某些行设置 AutoSizeRowsMo​​de

我目前正在创建自己的DataGridViewRow称为DataGridViewMultiRow),并且我只想将 DGV 中那些不属于我的新类类型的行设置为自动高度。

我还没有找到一个好的解决方案。我的解决方法是用我将手动绘制的相同合并数据填充多行单元格(我将以不同的方式绘制,所以这仍然有用),确保自动高度计算正确的高度。
如果 auto-height 关闭,那么我的PaintRow()that hooks onDGV.RowPrePaint event会直接设置高度。

另一个(丑陋的)解决方法可能是订阅合适的 DGV 事件并调用AutoResizeRow()每个 DGVR。

有没有办法将自动高度设置仅应用于某些行?