【发布时间】:2014-12-18 04:18:37
【问题描述】:
我有一个在 Windows 窗体上使用组合框的 c# Visual Studio 程序。 我想完全拥有 .net 4.5 Combobox.IsEditable 函数的功能:
http://msdn.microsoft.com/en-us/library/system.windows.controls.combobox.iseditable%28v=vs.110%29.aspx (我需要 readonly=true, iseditable=false 功能)
与此类似的问题随处可见(例如How to disable editing of elements in combobox for c#?),答案总是相同的: "将下拉样式设置为下拉列表"
但是,我不能这样做! 在这个程序中,我经常需要在我的代码中设置和检索组合框的文本值,这在下拉列表样式中是不可能的。
有什么方法可以将 .net 4.5 iseditable 函数放入我的 .net 4 组合框?
提前致谢, 安雅
【问题讨论】:
-
DropDownList 样式在哪些方面是不可能的?你试过什么?查看 Selected* 属性。我已经有几年没有使用 WinForms 了,所以不记得是哪一个了,但我曾经一直这样做。
-
@Anya,当您说组合框设置为 DropDownList 样式时无法设置和检索组合框的文本值,为什么不呢?您可以使用 comboBox.Text 属性获取/设置它。在我刚刚使用 .Net 4.0 进行的测试中工作正常。请详细说明为什么这对您来说是个问题。谢谢。
-
我不太明白为什么在这种情况下 combobox.text 属性对我不起作用。但是,如果我将组合框设置为“下拉”,我的代码:combobox.Text = "group 1";工作正常,当表单加载时,组合框文本设置为“组 1”,但是如果我将属性设置为“下拉列表”,当表单加载时,组合框中没有文本。在查看断点并尝试设置 selectedindex 属性时,每当我尝试将 selectedindex 设置为 -1 以外的任何值(即使集合中肯定有项目)时,组合框实际上都会引发错误。
标签: c# .net winforms visual-studio-2012 combobox