我的问题是我有一个datagridview,我在其中添加了来自数据库的不同产品,每个产品都有4种不同的价格存储在数据库中。 如果ID存在,数据网格填充其信息,我会从我放入文本框的ID中查找它们。这里的一切都很好问题是我想在datagridview中的一个组合框中收集每个产品的所有4个价格。我已经尝试了很多,但没有任何作用。我只能做到这一点:
{state: [counties], state2: [counties], ...}
请帮助我,它几乎完成了我只需要在每一行的组合框中重复每个产品的价格
谢谢
答案 0 :(得分:0)
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btTest.Click
Dim dgvColumnText As New DataGridViewTextBoxColumn
Dim dgvColumnCombo As New DataGridViewComboBoxColumn
dgvColumnText.Name = "Producto"
dgvColumnText.HeaderText = "Producto"
myGrid.Columns.Add(dgvColumnText)
dgvColumnCombo.Name = "Precio"
dgvColumnCombo.HeaderText = "Precio"
myGrid.Columns.Add(dgvColumnCombo)
myGrid.Rows.Add(10)
For i As Integer = 0 To myGrid.Rows.Count - 1
myGrid.Rows(i).Cells("Producto").Value = String.Format("Producto {0}", i)
Dim c As DataGridViewComboBoxCell
c = CType(myGrid.Item(1, i), DataGridViewComboBoxCell)
c.Items.Add(String.Format("Precio {0}", i))
c.Items.Add(String.Format("Precio {0}", CStr(i * 2)))
Next
End Sub
您只需要添加到表单:DataGridView控件(代码中的myGrid)和一个按钮(btTest)。
如您所见,如果要使用不同的值填充每个单元格,则需要使用DataGridViewComboBoxCell控件。
您会发现另一个问题:当您点击单元格设置价格时,您需要点击两次。如果您不想这样做,则必须使用以下代码:
Private Sub myGrid_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles myGrid.CellClick
Dim validRow As Boolean = (e.RowIndex <> -1)
Dim mygrid As DataGridView = CType(sender, DataGridView)
If TypeOf (mygrid.Columns(e.ColumnIndex)) Is DataGridViewComboBoxColumn AndAlso validRow = True Then
mygrid.BeginEdit(True)
Dim c As ComboBox = CType(mygrid.EditingControl, ComboBox)
c.DroppedDown = True
End If
End Sub
希望这可以帮到你