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
昨天也问过了,好像都不理解我的意思似的。。
展开
 我来答
平梦醉神风1I
2011-08-14 · TA获得超过1510个赞
知道小有建树答主
回答量:691
采纳率:0%
帮助的人:1033万
展开全部
没想到很好的解决方案,根据资料查询应该是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;
}
Alfred_H
2011-08-14 · TA获得超过1104个赞
知道小有建树答主
回答量:231
采纳率:0%
帮助的人:266万
展开全部
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
comboBox1.Text = "88888888";
//comboBox1.SelectedItem.ToString().Replace("bbbbb", "88888");
}
在这里面加个断点,调试一下看能不能进去。
如果进不去断点,检查一下设计器里面有没有为这个控件订阅了这个方法。
comboBox1.SelectedIndexChanged +=comboBox1_SelectedIndexChanged;
追问
能进去,也设置了。
但是最终的结果还是显示了选中的值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
壳大阅读
2011-08-14 · TA获得超过535个赞
知道小有建树答主
回答量:402
采纳率:0%
帮助的人:308万
展开全部
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
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
测试过了的。如果这个题 对了,也把那个结了吧。那边我也回答一下。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Pink__L
2011-08-14
知道答主
回答量:15
采纳率:0%
帮助的人:5万
展开全部
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.text 中显示就可以了。列表中一定要保持原来的值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hefei0413
2011-08-14 · TA获得超过166个赞
知道答主
回答量:81
采纳率:100%
帮助的人:40.8万
展开全部
但是那样写会有问题啊。。。 这样的话ITem值会被永久替换成88 最后还得转回来 如果选项很多的话比较复杂吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式