设置DataGridView指定列行高自动调整时触发枚举参数无效错误
问题分析与解决方案
嘿,我一眼就瞅出问题出在哪了!你代码里犯了个典型的枚举类型混用错误:
你试图把行自动调整模式的枚举值 DataGridViewAutoSizeRowsMode.DisplayedCells 赋值给列的 AutoSizeMode 属性,但列的这个属性需要的是 DataGridViewAutoSizeColumnMode 枚举下的有效值,两种枚举类型不兼容,所以才会抛出「参数‘value’(值为11)对于枚举类型‘DataGridViewAutoSizeColumnMode’无效」的错误。
分场景修正代码
场景1:你实际想设置行自动适应内容高度
如果你的需求是让DataGridView的行根据单元格内容自动调整高度,那应该直接操作控件的 AutoSizeRowsMode 属性,而不是某一列的属性:
Public Sub Multi_LineGrid(ByRef List As DataGridView) Try ' 设置行自动适应显示的单元格内容高度 List.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCells Catch ex As Exception MsgBox(ex.Message) End Try End Sub
场景2:你实际想设置指定列自动适应内容宽度
如果你的需求是让第2列(索引为1,DataGridView列索引从0开始)自动调整宽度来适配内容,那就要使用DataGridViewAutoSizeColumnMode枚举下的对应值:
Public Sub Multi_LineGrid(ByRef List As DataGridView) Try ' 设置第2列自动适应显示的单元格内容宽度 List.Columns(1).AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells Catch ex As Exception MsgBox(ex.Message) End Try End Sub
额外提示
DataGridViewAutoSizeRowsMode是用来控制行高度自动调整的枚举,值都是和行相关的规则DataGridViewAutoSizeColumnMode是用来控制列宽度自动调整的枚举,值都是和列相关的规则- 这两个枚举的数值可能重叠,但类型完全不同,绝对不能混用哦!
内容的提问来源于stack exchange,提问作者Niuq
相关产品推荐
相关产品推荐

