[英]How to have readonly and editable items on a comboBox in C#?
我正在尝试在ComboBox中添加项目,其中2个是ReadOnly,1个是可编辑项目。.我面临的问题是,我无法提出一种解决方案来编辑所选的可编辑项目。.我创建了一个ComboBox并添加了3个项目,并将dropdownStyle设置为DropDownList。有人可以帮助我吗??? 谢谢
它不是那么容易。 但是可以使用TextUpdate事件来检测对文本的更改。 然后,稍后恢复原始选择,Control.BeginInvoke()很方便。 此示例表单运行良好,在设计器中放了一个组合框。 第二项受保护:
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
comboBox1.TextUpdate += new EventHandler(comboBox1_TextUpdate);
comboBox1.Items.Add(new Content { text = "one" });
comboBox1.Items.Add(new Content { text = "two", ro = true });
comboBox1.Items.Add(new Content { text = "three" });
}
private void comboBox1_TextUpdate(object sender, EventArgs e) {
int index = comboBox1.SelectedIndex;
if (index < 0) return;
var content = (Content)comboBox1.Items[index];
if (content.ro) this.BeginInvoke(new Action(() => {
comboBox1.SelectedIndex = index;
comboBox1.SelectAll();
}));
}
private class Content {
public string text;
public bool ro;
public override string ToString() { return text; }
}
}
请注意,您不能使用DropDownList,该样式不允许编辑。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.