vb.net - 设置 DataGridViewComboBoxColumn ItemHeight
问题描述
我有DataGridView
一个DataGridViewComboBoxColumn
; 因为行被包裹在另一列 ( .DefaultCellStyle.WrapMode = DataGridViewTriState.True
) 上,所以行高与自动.ItemHeight
when不同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
奇怪的调整大小行为:
当下拉菜单显示时,它会调整到项目的高度(在这种情况下,大约是行高的一半)。
但是,有两个问题:
- 显示的 ComboBox 是空白的,尽管肯定填充了项目
- 选择ComboBox时,会给出DataError:
System.ArgumentException: DataGridViewComboBoxCell value is not valid
我在这里做错了什么?
或者,是否有更简单的方法来设置.ItemHeight
由DataGridViewComboBoxColumn
?
解决方案
推荐阅读
- python - TensorFlow:“输入形状的预期轴-1......”
- c - 为什么此代码与单个 printf 的行为不同?ucontext.h
- javascript - django视图将json传递给javascript
- c++ - 使用 C++ 进行文字游戏倒计时
- c# - EF Core:如何避免重复条目?
- python - discord.py 块广告不起作用
- python - 提取特定的 JSON 键并在 Python 中转换为 CSV
- google-cloud-platform - 使用 Python 对来自 Google Cloud Logging 的日志进行分页
- swift - 在 SwiftUI 中使用 ForEach 枚举
- python - 通过围绕枢轴旋转一个 3d 点来创建一个圆