大众信息网

C#中只想把textbox里面输入的值加入到listbox里面

答案:6  mip版
解决时间 2021-02-08 11:42
  • 提问者网友:森很绿却致人迷途
  • 2021-02-07 16:28
我在textbox-changedtext里面编写了if(textbox.focused == true)然后执行添加,但是这样的话会出现下列情况:比如我本来是想输入23然后在list里面有23,但是这个时候会再list里面出现2和23
请问这样的情况怎么解决?
很着急~谢谢帮忙
最佳答案
  • 二级知识专家网友:棄療尐钕
  • 2021-02-07 17:13
当然了,textchanged事件是输入一次就触发一次,
而你又在这个事件中写添加方法,当然输入一个字符就添加一个字符,
解决方法:
在KeyPress事件中写,写完后按回车就添加了
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)Keys.Enter) //如果按了回车键
{
//在这里写添加到listbox中的代码.....
}
}
全部回答
  • 1楼网友:他拾裏鰅妳
  • 2021-02-07 21:42
那就在其它事件里写 别写在 changedtext。。 比如 KeyPress下 判断输入是否为Enter之类的终结字符进行给值 也可以在比如Leave事件去做
  • 2楼网友:娇而不傲的猫
  • 2021-02-07 20:37
楼主你好,按回车的时候把textbox的值添加到listbox也罢,或者触发leave事件的时候添加,殊途同归,都是一个目的:在一个明确的前提条件下,执行你所需要的动作。 看了一下你的需求,将计算的过程放到list中,计算的结果放在当前textbox中,那么请问,什么情况下做计算动作?
  • 3楼网友:老酒街
  • 2021-02-07 19:51
可以定义一个关系把textbox和listbox指定的行绑定起来.只不过要自己写代码 还是在changedtext事件上 比如textbox,第一次触发时 listbox直接添加text即可,同时记录这个位置,index_i 下次textbox触发这个事件,直接修改listbox的item[index_i]为textbox的text private void textBox1_TextChanged(object sender,EventArgs e) { if(textBox1.Tag != null) { listBox1.Items[(int)textBox1.Tag] = textBox1.Text; } else { textBox1.Tag =listBox1.Items.Add(textBox1.Text); } }
  • 4楼网友:假装安慰
  • 2021-02-07 19:29
protected void button1_click(object sender, eventargs e) { listbox1.items.clear(); listbox1.items.add(textbox1.text.tostring()); } 需要 一个textbox1一个listbox1一个button1 .点button1 即实现
  • 5楼网友:假装安慰
  • 2021-02-07 18:08
不知道你想怎么填 不知道你想填几条 将textbox中的数据填到list中 每次更新时清空List 然后在onfocused==false时 将list中的数据填到listbox中 换句话说 你出现重复数据 就是因为textchangedtext事件你每按一次键盘都会触发
我要举报
如以上问答内容为低俗/色情/暴力/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
点此我要举报以上问答信息
推荐资讯