如何在c#的组合框中拥有只读和可编辑的项目
本文关键字:只读 项目 编辑 拥有 组合 | 更新日期: 2023-09-27 18:04:53
我试图在组合框中添加项目,其中2是只读的,1是可编辑的项目。我所面临的问题是,我不能提出一个解决方案来编辑所选的可编辑项目。我创建了一个组合框,并添加了3个项目,并将下拉样式设置为DropDownList..有人能帮帮我吗?由于
可没那么容易。但是,您可以使用textuupdate事件来检测文本的更改。然后稍后恢复原始选择,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; }
}
}
注意你不能使用下拉列表,那个样式不允许编辑