我不希望用户能够更改组合框中显示的值.我一直在使用,Enabled = false
但它会使文本变灰,所以它不是很易读.我希望它的行为像文本框一样ReadOnly = true
,文本正常显示,但用户无法编辑它.
有没有办法实现这个?
make DropDownStyle
属性DropDownList
而不是DropDown
处理TextChanged
事件以防止用户更改文本.
文章组合框与-只读行为提出了一个有趣的解决方案:
在同一个地方创建只读文本框和组合框.当您想要只读模式时,显示文本框,当您希望它可编辑时,显示组合框.
不确定这是不是你想要的但是......
设置DropDownStyle = DropDownList
然后在SelectedIndexChanged事件上
If (ComboBox1.SelectedIndex <> 0) { ComboBox1.SelectedIndex = 0 }
这个丑陋的部分是他们会"感觉"他们可以改变它.他们可能认为这是一个错误,除非你给他们一个警告,告诉他们为什么他们不能改变价值.
我可以建议的最好的事情是用只读文本框(或者只是标签)替换组合框 - 这样用户仍然可以选择/复制值等.
当然,另一个厚脸皮的策略是设置DropDownStyle
为DropDownList
,并删除所有其他选项 - 然后用户没有别的选择;-p
在此输入链接描述
只需更改
DropDownStyle
为DropDownList
.或者如果你想要它完全只读你可以设置Enabled = false
,或者如果你不喜欢它的外观我有时有两个控件,一个只读文本框和一个组合框然后隐藏组合并显示文本框是否应该完全只读反之亦然.