C# ComboBox1控件选中的值进行替换
我的目的是想对ComboBox1控件所选中的值进行一些处理后再显示出来。//////////////////比如我选中bbbbb这项的时候我要它显示为88888888这个...
我的目的是想对ComboBox1控件所选中的值进行一些处理后再显示出来。
//////////////////
比如我选中bbbbb这项的时候我要它显示为88888888 这个结果。
private void Form1_Load(object sender, EventArgs e)
{
comboBox1.Items.Add("aaaaa");
comboBox1.Items.Add("bbbbb");
comboBox1.Items.Add("ccccc");
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
comboBox1.Text = "88888888";
//comboBox1.SelectedItem.ToString().Replace("bbbbb", "88888");
}
//上面是我的代码,我选中bbbbbb这项后它依然是显示bbbbbb 。
http://zhidao.baidu.com/question/306543289.html
昨天也问过了,好像都不理解我的意思似的。。 展开
//////////////////
比如我选中bbbbb这项的时候我要它显示为88888888 这个结果。
private void Form1_Load(object sender, EventArgs e)
{
comboBox1.Items.Add("aaaaa");
comboBox1.Items.Add("bbbbb");
comboBox1.Items.Add("ccccc");
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
comboBox1.Text = "88888888";
//comboBox1.SelectedItem.ToString().Replace("bbbbb", "88888");
}
//上面是我的代码,我选中bbbbbb这项后它依然是显示bbbbbb 。
http://zhidao.baidu.com/question/306543289.html
昨天也问过了,好像都不理解我的意思似的。。 展开
展开全部
没想到很好的解决方案,根据资料查询应该是ComboBox的bug,可以用下面的方式实现楼主的功能,请参考
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
string text = comboBox1.SelectedItem.ToString().Replace("bbbbb", "88888");
System.Threading.ThreadPool.QueueUserWorkItem(MyChanged, text);
}
private void MyChanged(object state)
{
comboBox1.Text = state as string;
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
string text = comboBox1.SelectedItem.ToString().Replace("bbbbb", "88888");
System.Threading.ThreadPool.QueueUserWorkItem(MyChanged, text);
}
private void MyChanged(object state)
{
comboBox1.Text = state as string;
}
展开全部
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
comboBox1.Text = "88888888";
//comboBox1.SelectedItem.ToString().Replace("bbbbb", "88888");
}
在这里面加个断点,调试一下看能不能进去。
如果进不去断点,检查一下设计器里面有没有为这个控件订阅了这个方法。
comboBox1.SelectedIndexChanged +=comboBox1_SelectedIndexChanged;
{
comboBox1.Text = "88888888";
//comboBox1.SelectedItem.ToString().Replace("bbbbb", "88888");
}
在这里面加个断点,调试一下看能不能进去。
如果进不去断点,检查一下设计器里面有没有为这个控件订阅了这个方法。
comboBox1.SelectedIndexChanged +=comboBox1_SelectedIndexChanged;
追问
能进去,也设置了。
但是最终的结果还是显示了选中的值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
comboBox1.SelectedItem.text = comboBox1.SelectedItem.ToString().Replace("bbbbb", "88888");
}
试下
{
comboBox1.SelectedItem.text = comboBox1.SelectedItem.ToString().Replace("bbbbb", "88888");
}
试下
更多追问追答
追问
没有这个属性呢。
有这两个,但是也不行。
//comboBox1.SelectedText ="888888";
comboBox1.SelectedValue = "888888";
追答
用C#写的。
int i = comboBox1.SelectedIndex;
string txt = comboBox1.Items[i].ToString();
string replaceedStr = txt.Replace("bb","88");
if (txt == replaceedStr) return;
comboBox1.Items[i] = replaceedStr;
长沙网站建设专家,长沙极度信息技术有限公司 0731icom
测试过了的。如果这个题 对了,也把那个结了吧。那边我也回答一下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
comboBox1.Items[comboBox1.SelectedIndex] = "88888888";
}
但是注意,如果用SelectedIndexChanged这个事件激发,则会无限循环导致程序崩溃。这时就要作出相应的规定,如:
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (comboBox1.SelectedText != "88888888")
comboBox1.Items[comboBox1.SelectedIndex] = "88888888";
}
{
comboBox1.Items[comboBox1.SelectedIndex] = "88888888";
}
但是注意,如果用SelectedIndexChanged这个事件激发,则会无限循环导致程序崩溃。这时就要作出相应的规定,如:
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (comboBox1.SelectedText != "88888888")
comboBox1.Items[comboBox1.SelectedIndex] = "88888888";
}
追问
我不要修改列表中的值呀,我只要获取选中的列表值,进行一些处理后显示在comboBox1.text 中显示就可以了。列表中一定要保持原来的值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
但是那样写会有问题啊。。。 这样的话ITem值会被永久替换成88 最后还得转回来 如果选项很多的话比较复杂吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询