【发布时间】:2011-03-15 11:40:14
【问题描述】:
我在 winforms 应用程序中有一个 DataGridView。 除了来自 db 表的 4 列之外,我还需要在 datagridview [可能正在使用 DataGridViewComboColumn?] 中显示一个具有组合框的附加列。 2.然后我想为每一行的每个组合框添加不同的项目集。
我该怎么做?
谢谢。
【问题讨论】:
标签: winforms datagridview
我在 winforms 应用程序中有一个 DataGridView。 除了来自 db 表的 4 列之外,我还需要在 datagridview [可能正在使用 DataGridViewComboColumn?] 中显示一个具有组合框的附加列。 2.然后我想为每一行的每个组合框添加不同的项目集。
我该怎么做?
谢谢。
【问题讨论】:
标签: winforms datagridview
您可以尝试通过网格的DataBindingComplete添加它们
这几行的内容
void dataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
foreach (DataGridViewRow row in dataGridView1.Rows)
{
if (row.Cells[0] is DataGridViewComboBoxCell && row.Index == 1)
(row.Cells[0] as DataGridViewComboBoxCell).Items.Add("A");
else
(row.Cells[0] as DataGridViewComboBoxCell).Items.Add("B");
}
}
希望这会有所帮助 编辑
(row.Cells[0] as DataGridViewComboBoxCell).Value = (row.Cells[0] as DataGridViewComboBoxCell).Items[0];
当该单元格被选中时,第一个值将显示为选中
【讨论】:
我在 VB.NET 中寻找答案,但在这里找到了 C# 答案。
在 VB 中你可以这样做:
Private Sub DataGridView1_DataBindingComplete(sender As Object, e As DataGridViewBindingCompleteEventArgs) Handles DataGridView1.DataBindingComplete
For Each row As DataGridViewRow in DataGridView1.Rows
If TypeOf row.Cells(0) Is DataGridViewComboBoxCell AndAlso row.Index = 1 Then
TryCast(row.Cells(0), DataGridViewComboBoxCell).Items.Add("A")
Else
TryCast(row.Cells(0), DataGridViewComboBoxCell).Items.Add("B")
End If
Next
End Sub
编辑:
TryCast(row.Cells(0), DataGridViewComboBoxCell).Value = TryCast(row.Cells(0), DataGridViewComboBoxCell).Items(0)
【讨论】: