如何在数据网格视图中仅为标题添加Combobox?

时间:2015-07-03 13:57:45

标签: vb.net

这是我的代码 - 我想为第二列添加combobox。因此,无论用户在该列中输入什么值,我都可以用于进一步的操作。我故意在组合中更改了项目。

Dim cmbHeaderCell As New ComboBox
cmbHeaderCell1.DropDownStyle = ComboBoxStyle.DropDownList
cmbHeaderCell1.Visible = True

cmbHeaderCell1.Items.Add("India")
cmbHeaderCell1.Items.Add("China")
DGrdVLoadStb.Columns(1).Width = cmbHeaderCell1.Width

cmbHeaderCell1.Location = DGrdVLoadStb.GetCellDisplayRectangle(1, -1,True).Location
cmbHeaderCell1.Size = DGrdVLoadStb.Columns(1).HeaderCell.Size
cmbHeaderCell1.SelectedIndex = 0

我从(0, 0)方法获取位置GetCellDisplayRectangle(1, -1, True)。我已经在stackOverflow上检查了很多相关的问题,但我没有得到完美的答案,请帮助我。提前谢谢。

1 个答案:

答案 0 :(得分:0)

正如我在评论中所写,我设法通过使用, 1. datagridview第一列的宽度加2 2.将其作为combobox loacation的X,将Y作为2。 这是我的代码,

        Dim cmbHeaderCell1 As New ComboBox
        cmbHeaderCell1.DropDownStyle = ComboBoxStyle.DropDownList
        cmbHeaderCell1.Visible = True
        cmbHeaderCell1.Items.Clear()
        cmbHeaderCell1.Items.Add("India")
        cmbHeaderCell1.Items.Add("China")
        DGrdVLoadStb.Columns(1).Width = cmbHeaderCell1.Width

        'Dim X As Integer = DGrdVLoadStb.GetCellDisplayRectangle(1, -1, False).Location.X
        'Dim Y As Integer = DGrdVLoadStb.GetCellDisplayRectangle(1, -1, True).Location.Y
        cmbHeaderCell1.Location = New Point(datagridview1.Columns(0).Width + 2, 2)
        cmbHeaderCell1.Size = DGrdVLoadStb.Columns(1).HeaderCell.Size
        cmbHeaderCellStressRate.DropDownStyle = ComboBoxStyle.DropDownList
        DGrdVLoadStb.Controls.Add(cmbHeaderCell1)
        cmbHeaderCell1.SelectedIndex = 0

如果有任何人有更好的解决方案,请发布,我会接受。