【问题标题】:combobox to update adjacent cell in a datagridview组合框更新datagridview中的相邻单元格
【发布时间】:2014-02-09 09:56:31
【问题描述】:

我有一个带有组合框的数据网格视图,该组合框查找另一个名为 products 的表,使我能够选择一个产品。我还将 datagridview 标记设置为在价格列中查找同一个表“产品”。我希望能够通过从组合框中选择产品来自动填充价格单元格。问题是下面的代码将整个列更改为相同的价格。我只希望更改该特定行。

我在 datagridview.cellvaluechanged 事件上有以下代码。顺便说一句...我使用 VB.net。拜托,没有 C# 答案。

    Dim price As Double = 0


    price = Recipe_DetailsDataGridView.Tag
    For Each column As DataRowView In Me.Recipe_DetailsBindingSource.List
        column!price = price

    Next

【问题讨论】:

    标签: vb.net winforms datagridview combobox


    【解决方案1】:

    鉴于您正在循环遍历所有行,为什么您会对所有行都发生变化感到惊讶?如果您只想更改一行,则只需更改一行,这不涉及循环。您正在使用的事件应该为您提供行索引,因此您可以从同一行的相应列中获取单元格,也可以获取绑定项并设置相应的字段。

    顺便说一句,当循环控制变量代表一行时,将其命名为“列”真的有意义吗?

    【讨论】:

    • 我不知道。这就是我问专家的原因。我在其他地方看到了这段代码。我确实尝试过只使用一种方法,但没有奏效。我对此很陌生。大约一个月前开始编写代码。谢谢。
    • 正如我所说,您使用的事件提供了行索引。首先要做的是阅读有关该事件的信息。获得行索引后,您就可以获取该行。获得行后,您可以在所需列中获取单元格并设置其值,或者获取 DataBoundItem 并直接修改它。
    • 没有成功。花了几个小时试图弄清楚如何做到这一点。我想我得读更多的书。不过,举个例子会很有帮助。
    • 您如何向我们展示您认为应该是什么,然后我们会帮助您解决它?
    【解决方案2】:

    这就是我所拥有的。我有一个模糊的想法,并且能够完成一个消息框来显示行索引。

    将索引设为整数

        For i = 0 To Recipe_DetailsDataGridView.SelectedCells.Count - 1
    
            index = Recipe_DetailsDataGridView.SelectedCells.Item(i).RowIndex
            MsgBox(index, , )
    

    【讨论】:

      【解决方案3】:

      做到了!第一行我从一个旧的 VBA 项目中得到它们,并根据 .net 简单地实现它 最后一行刚刚从我脑海中蹦出来。

      将索引设为整数

          For i = 0 To Recipe_DetailsDataGridView.SelectedCells.Count - 1
      
              index = Recipe_DetailsDataGridView.SelectedCells.Item(i).RowIndex
              Recipe_DetailsDataGridView.CurrentRow.Cells(2).Value = Recipe_DetailsDataGridView.Tag
      

      【讨论】:

        猜你喜欢
        • 2012-03-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-24
        • 2018-09-21
        • 2012-02-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多