首页 > 解决方案 > 设置 DataGridViewComboBoxColumn ItemHeight

问题描述

我有DataGridView一个DataGridViewComboBoxColumn; 因为行被包裹在另一列 ( .DefaultCellStyle.WrapMode = DataGridViewTriState.True) 上,所以行高与自动.ItemHeightwhen不同DrawMode = DrawMode.Normal

为了防止显示时出现奇怪的调整大小行为,ComboBox我试图在事件ComboBox期间手动绘制EditingControlShowing

Private Sub dgv_EditingControlShowing(ByVal sender As Object, ByVal e As DataGridViewEditingControlShowingEventArgs) Handles dgv.EditingControlShowing

        Dim cb As ComboBox = TryCast(e.Control, ComboBox)

        If cb IsNot Nothing Then

            For Each code In CheckCodes
                cb.Items.Add(code.Key)
            Next

            cb.ItemHeight = dgv.CurrentRow.Height
            cb.DrawMode = DrawMode.OwnerDrawFixed

        End If

    End Sub

奇怪的调整大小行为:

在此处输入图像描述 在此处输入图像描述

当下拉菜单显示时,它会调整到项目的高度(在这种情况下,大约是行高的一半)。

但是,有两个问题:

我在这里做错了什么?

或者,是否有更简单的方法来设置.ItemHeightDataGridViewComboBoxColumn?

标签: vb.netdatagridviewdatagridcomboboxcolumn

解决方案


推荐阅读