问题标签 [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 投票
2 回答
67 浏览

c# - 如何找到作为 datagridview 指定行和列的一部分的单元格的值?

如何找到指定列和行的部分?

我有一个 datagridview 作为表格,如下图所示。

在此处输入图像描述

在 datagridview 中,单元格包含规则。(TE',1) 表示它是规则 TE',它是第一个规则。

我的任务就像我有一个表达式,例如 i+i*i,并使用第一列中显示的“规则”,我在 datagridview 中找到单元格的值,该列是表达式的第一个字符, which's row 是第二部分的第一个字符。我知道一开始这听起来很荒谬,但让我举个例子来说明这一点。

第一步是 (i+i*i#,E#,empty)。我检查第一部分的第一个字符i,检查第二部分的第一个字符E,查找列i和行E的部分。它是(TE',1),所以在开始步骤中,我将E替换为单元格值TE' ,并为第三部分添加数字1 ,该部分一开始是空的。现在实际的“公式”是这样的:

(i+i*i#,TE',1)

我用在单元格中找到的“规则”替换了第二部分,并将规则的编号添加到公式的第三部分。

下一步,我找到列i和行T的部分,它是(FT',4),所以我将T替换为FT',并将数字 4 添加到第三部分。

(i+i*i#, FT'E'#,14)

现在我寻找第i列和第F行的部分,即(i,8)。我再做一次更换。

(i+i*i#,iT'E'#,148)

现在对于第 i 列和第 i它是一个流行,所以我从公式中删除两者。

(+i*i#,T'E'#,148)

现在我寻找列+和行T' .......

当公式中只有#和数字时,整个过程结束,例如 (#,#,1942682)。

我这样填充了datagridview(对此我也很抱歉..):

所以问题是,如果我有第一个公式(i+i*i#,E#,empty),如何在 datagridview 中搜索i列和E行的部分,以获取该单元格的值?

0 投票
0 回答
29 浏览

c# - CopyTo() 生成的数组是否仍然引用其父内存?

我想要 DataGridViewRows 的深拷贝。我有一个由 DataGridView.Rows.CopyTo() 函数生成的 DataGridViewRow 数组。数组 dgvra 是否仍然引用与 DataGridView.Rows 中的项目相同的内存?

DGV_Comp 是一个 DataGridView 控件

从变量手表,这就是我发现的

1. 两个等效单元格均为 1.357

2. 将 DGV_Comp 中的单元格更改为 2.468===>dgvra 中的对应单元格也更改为 2.468

3. 将 DGV_Comp 中的单元格更改为 3.579===>dgvra 中的对应单元格也更改为 3.579

4. 清除 DGV_Comp 中的所有行 ===> dgvra 中的单元格更改为 1.357

任何人都可以帮助我对我的发现做出合理的解释吗?

提前致谢。

0 投票
2 回答
147 浏览

c# - 我们如何才能禁用常规按钮,直到整个 dataGridView 完全用 C# 中的有效值填充

我有一个datagridview我已经包含了几个验证,比如单元格值不为空,单元格值应该在 (1,9) 的范围内。我还想确保只有在整个datagridview填充了有效值之后才启用计算按钮。

如果单元格值不为空,我尝试使用foreach并检查其中的行和单元格,但在检查一个单元格后立即启用按钮。检查每行中的最后一个单元格也不起作用,因为用户可以按任何顺序填充值,我们应该尝试跟踪所有单元格都被填充的点,然后启用按钮。如果它们没有被填充,我们必须立即禁用按钮。有没有办法只有在所有单元格都相应地填充和验证时才能启用按钮。

下面是我的代码。我对 C# 有点陌生,我也想知道我是否使用正确的datagridview事件来实现这一点。不是循环遍历每一行和单元格来查找值,是否有一种有效的方法可以一次性查找所有单元格是否都已填充?

0 投票
1 回答
164 浏览

c# - 第一行的 C# DataGridViewRow.Displayed 错误?

我有一个表单,其中一些控件根据 DataGridView 中当前显示的行(及其位置)进行更新。因此,在dataGridView1.VerticalScrollBar.ValueChanged事件中,我遍历所有行并检查它们是否显示。

所以这是滚动回顶部(通过鼠标滚轮)时的问题:

  • dataGridView1.VerticalScrollBar.Value0-> 好的
  • dataGridView1.FirstDisplayedCell.RowIndex0-> 好的
  • dataGridView1.FirstDisplayedScrollingRowIndex0-> 好的
  • dataGridView1.Rows[0].Displayed仍然false-> 嗯?
  • dataGridView1.GetRowDisplayRectangle(0, false)也是{0,0,0,0}-> ...?

检查https://referencesource.microsoft.com后,我意识到FirstDisplayedCell实际使用this.Rows.GetFirstRow(DataGridViewElementStates.Visible | DataGridViewElementStates.Frozen),这似乎有点不正确,还是我错了?我该如何解决这个问题,以便获得第一行的正确显示信息/矩形?

先感谢您!

代码:

0 投票
1 回答
79 浏览

c# - 在 Visual Studio 上通过 C# 中的 datagridview 更新 SQL Server 数据库

当用户双击 datagridview 上的一行时,相关的详细信息会出现在文本框中。

用户可以编辑详细信息并单击更新按钮以将更新保存在 SQL 数据库中。

注意:CustomerID 是数据库中客户表中的标识列

请帮助 C# 代码。

程序捕获

0 投票
1 回答
87 浏览

c# - 不能对 DataGridView 当前行使用 DataRow 对象,但可以对另一个 DGV 使用相同的代码

在 C# WinForms 项目中,我有两个功能相似的 DGV,只是数据不同。

对于每个,当用户更改可编辑单元格的值时,如果用户键入的内容与单元格中的值不同,我将使用CellValueChanged更改单元格的颜色。

这是代码。一切都按需要和预期工作。

我也需要对其他 DGV 做同样的事情,所以我只需复制/粘贴代码并更改 DGV 的名称:

我的问题是,对于第二个 DGV,它下面dgvDefaults.Rows[intRowIndex]有一条红色错误线,上面写着:“不能隐式转换类型 'System.Windows.Forms.DataGridViewRow' 所以 'System.Data.DataRow'。这完全让我感到困惑,因为我”我在另一个 DGV 上做同样的事情,但没有错误,运行良好。每个 DGV 的数据集设置相同,DGV 的属性相同 - 唯一的区别是它们持有的数据。

我尝试将第二个 DGV 的drCurrRow代码更改为DataGridViewRow drCurrRow = dgvDefaults.Rows[intRowIndex];并且没有错误,但我无法弄清楚如何使用它来获取原始版本和建议版本。

A)为什么我在第二个 DGV 而不是第一个 DGV 的那条线上出现错误和 B)我怎样才能满足我的需求?

0 投票
1 回答
86 浏览

c# - Datagridview 仅更新最后一行

  1. 我在共享驱动器中有一个包含 xml 文件的文件夹。
  2. 该文件被合并为单个数据以进行实时监控
  3. FilesystemWatcher 监听最后修改时间并将文件加载到主数据表或合并它。
  4. 应出现的 datagridview 行单元应显示基于国家/地区的颜色。
  5. 除了datagridview中的颜色部分之外,我在合并文件和做其他事情方面没有问题。
  6. 问题是下面的代码在加载文件 datagridveiw 行时会改变单元格的颜色,但是当它完成加载时,只有最后一个 datagridview 行显示彩色单元格。
  7. 最重要的是,如果用户对 datagridview 列进行排序,所有单元格都会丢失其颜色格式,包括最后一个
  8. 谁能告诉我我做错了什么或如何解决?
0 投票
1 回答
37 浏览

wpf - WPF如何在datagridrow中绑定多个属性

我已经在 DataGridRow(不是 DataGridTextcolumn)中绑定了静态属性。我该如何绑定它?

我已经在普通网格中手动绑定了一个静态属性。代码如下所示(但现在如何在 DataGridRow-Wise 中绑定属性)。

模型类

附图: 图像

但现在相同的属性绑定到DataGrid. 我该如何绑定?

0 投票
1 回答
58 浏览

c# - 向 DataGridView 添加行时出现 NullReferenceException

我在 C# 中添加行有问题DataGridView,我尝试添加一个String[]asDataGridView.Rows.Add参数,但总是同样的问题,现在这是我的最终代码,它不再起作用,总是NullReferenceException

它会抛出一个 NullReferenceException

dataGridViewListerDV.Rows.Add(liste[i].date, liste[i].heureDebut, liste[i].heureFin, null, null);

0 投票
1 回答
81 浏览

c# - 通过DataSource为DatagridView绑定数据时为DataGridViewRow.Tag设置值

我试图.Tag在数据绑定时为 DataGridViewRow 设置一个值,但我不知道该怎么做?

我试过DataRow row = table.NewRow();但是行没有标签。

binding DataGridView何时表(例如)如何设置 DataGridViewRow.Tag 的值?还是不可能?

编辑1:

这是我正在使用的代码:

我正在尝试为该行设置一个标签以在 CellClick 事件中使用它: