【问题标题】:Change DataGridView Multiple cells value at once when another Grid Cell value Changed当另一个网格单元格值更改时,一次更改 DataGridView 多个单元格值
【发布时间】:2021-10-24 07:56:39
【问题描述】:

我在 C# Winforms 应用程序的两个不同选项卡中使用 Visual Studio 2019 有两个 DataGridView 控件。

第一个网格包含以下项目名称和价格

ITEMNAME        PRICE
---------------------
MOUSE           399.00
PRINTER         12000.00
MONITOR         18500.00

在另一个网格中,我将这些物品发布/销售给不同的客户,如下所示

CUSTOMERNAME        ITEMNAME        PRICE
-----------------------------------------
ANANT H             MOUSE           399.00
JOLLY K             MONITOR         18500.00
ANANT H             MOUSE           399.00
KIRAN A             PRINTER         12000.00
KIRAN A             MOUSE           399.00

当第一个网格中任何项目的价格更新时,我希望在第二个网格中反映匹配的项目名称。例如,如果 MOUSE 价格更改为 500.00,它应该立即反映在 PRICE 列的所有 3 个单元格中第二个网格,ITEMNAME 匹配。

这样做的明显选择是运行 for 循环并与 ITEMNAME 匹配并获取 PRICE 单元格以编辑值。但是,当第二个网格中有大量记录时,这对我来说看起来很繁重且耗时。

当第一个网格中的价格发生变化时,我是否可以一次更改匹配 ITEMNAME 的 PRICE 值的所有值?

就像我们在 EXCEL 中所做的那样,如果单元格被引用到单个主单元格,当我们更改主单元格的价格值时,所有引用的单元格值都会立即自动更改。

【问题讨论】:

  • 为什么你想要一个记录你以 399 的价格将鼠标卖给 Anant 的系统,当你将鼠标的价格更改为 425 时突然开始说你以 425 的价格出售它?没有会计师会使用这个系统,但很多客户可能会;当您提高价格时,他们会退回他们的物品,以退还他们从未支付过的款项!克钦格! ??????
  • @CaiusJard,我正在为批发商的客户开发这个。他们以信用方式向客户销售商品,这意味着他们为组件提供了未提及价格的交付挑战,只有商品名称和数量。但他们需要用当前价格记录这一点。生成最终发票后,他们会向客户提供最终的 BILL/INVOICE,其中提及当前价格。这一次,他们将价格更新为 BILL 中的当前市场价格,发送给客户。所以这就是为什么我需要一些想法。无论如何,如果你能在这方面提供帮助,那将是非常有帮助的。

标签: c# visual-studio winforms datagridview


【解决方案1】:

好的,所以我们可以用数据关系做到这一点:

  • 在您的项目中添加一个 DataSet 类型的新文件(或者如果您已经有一个文件,请在现有文件中执行此操作)。打开数据集文件以查看空白设计图面(或现有表)
  • 右键新建数据表,放置一个名为Products的表,列ProductId、ItemName和Price,数据类型合理(int、string、float)
  • 放一个新表,我不知道,引号什么的
  • 在 Quotes 中放置 CustomerName、ProductId 列
  • 在 Products 表中点击 ProductId 灰色行标题,使行变为蓝色,然后在报价表的 ProductId 上单击拖放 - 出现创建数据关系窗口,检查 Products 是父表, Quotes 是子表(我总是忘记拖拽的方式)- 交换顶部的组合,或者如果拖错了,则重新拖拽
  • 在 Quotes 表中添加另一列 ProductPrice,键入 float 并将其 Expression 属性设置为 Parent.Price
  • 切换到新的表单设计器(现在,只是为了演示)并打开数据源窗口(查看菜单..其他窗口)。希望您没有使用 net core.. 将产品和报价节点从数据源中拖到表单中(有两个报价节点,一个是产品的子节点。拖动顶级节点,因为您不需要相关绑定此演示的行为

运行应用程序,输入一些产品,然后输入报价,然后更改价格。它应该会自动更新报价

【讨论】:

  • 太好了,我将尝试使用演示代码。
  • 这工作绝对完美无瑕。感谢您在这方面指导我。
  • 没问题;如果您在将其集成到任何现有代码中遇到任何问题,请告诉我们!
  • 谢谢,我可以大规模集成代码。很顺利,因为您提供了非常详细的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-28
  • 2016-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多