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

我在textbox-changedtext里面编写了if(textbox.focused == true)然后执行添加,但是这样的话会出现下列情况:比如我本来是想输入23然后在list里面有23,但是这个时候会再list里面出现2和23
请问这样的情况怎么解决?
很着急~谢谢帮忙

第1个回答  2011-08-18
可以定义一个关系把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);
}
}
第2个回答  2011-08-18
当然了,textchanged事件是输入一次就触发一次,
而你又在这个事件中写添加方法,当然输入一个字符就添加一个字符,
解决方法:
在KeyPress事件中写,写完后按回车就添加了
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)Keys.Enter) //如果按了回车键
{
//在这里写添加到listbox中的代码.....
}
}追问

不用这个按回车的还有别的解决方法么?

追答

那就用Leave事件,添加完之后点其它按钮或地方就添加
就是说当extBox不是活动控件时添加,不知道有没有说明白
private void textBox1_Leave(object sender, EventArgs e)
{
//在这里写添加到listbox中的代码.....
}

本回答被提问者采纳
第3个回答  2011-08-18
输入2的时候 触发一次 textbox-changedtext事件 你又输入3 又触发一次 当然会这样了
你应该用这样的逻辑 写入数据 然后按回车键 再把数据存到list里面 然后清空text里面的内容追问

我现在就是觉得输入回车麻烦,所以才比较迷茫。。。要是按了回车才输入的话就比较简单了。。。就是想问问不按回车有没有什么方法可以实现

追答

那没办法 你用了textbox-changedtext 这个事件 只要你一按键的某个键 字符改变了 就要把之前的内容加到list里面

追问

那还有别的解决方法么?

追答

这样列 你就在textbox-changedtext 这个事件里面加个判断 定一个比较少用的字符 或者 在 text的keypress里面判断是否按下了你自己定义的组合键 如果输入了这个字符或者按下了组合键 所有字符加到list里面 否则就不添加 只能这样了

第4个回答  2011-08-18
楼主你好,按回车的时候把textbox的值添加到listbox也罢,或者触发leave事件的时候添加,殊途同归,都是一个目的:在一个明确的前提条件下,执行你所需要的动作。

看了一下你的需求,将计算的过程放到list中,计算的结果放在当前textbox中,那么请问,什么情况下做计算动作?
第5个回答  2011-08-18
那就在其它事件里写 别写在 changedtext。。 比如
KeyPress下 判断输入是否为Enter之类的终结字符进行给值
也可以在比如Leave事件去做

C#中只想把textbox里面输入的值加入到listbox里面
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 { textBox...

vb如何令 textbox中输入的文字点击按钮后导入listbox中?
直接使用textbox 的additem方法就可以了。先在textbox中输入文字,然后点击命令按钮,就可以将文本框的内容作为一条新记录添加到listbox中。private sub confirm_click()if len(text1.text)>0 then listbox1.additem text1.text end if end sub ...

C#中如何通过,TextBox+ListBox实现自动匹配功能?
首先你得想法是对的。想提高性能只能改善遍历方法了。而且不建议你使用TextBox的Changed事件,你写一个字他就遍历一次,会死人的。你还可以为ListBox建立关键字List,这样遍历会容易一些。补充:你的设计中〉〉ListBox内有近万条数据项 你的ListBox是让人用的么,晕死,你如果看到上万条的ListBox,也...

c#中如何将listbox中的内容添加到textbox中
②在listbox的SelectedIndexChanged事件中,添加代码:string[] contents=System.IO.File.ReadAllLines(@listbox.selectedItem);foreach(string temp in contents){ textbox.appendText(temp);}

VB 把textbox输入的内容通过commandbutton按钮添加到到listbox中
1.为commandbutton添加onclick事件处理sub 2.textbox.text取得数据 3.listbox.addItem添加一行

...如何让textbox中输入信息,在表格中搜索到,并实时显示在listbox中
文本框:TextBox1;列表框:ListBox1;数据区域左上角为A1;此工作表为活动工作表。添加TextBox1事件代码:Private Sub TextBox1_Change() Dim Arr() As Variant Dim LastRow As Long, Count As Long, i As Long LastRow = Cells(Rows.Count, 2).End(xlUp).Row ReDim Arr(1...

c# listbox中怎么把每项的text属性传到另外一个文本控件中 谢谢
TextBox1.Text = ListBox1.SelectedValue;\/\/选中项的文本 \/\/listBox所有的项的Text foreach (var item in ListBox1.Items){ TextBox1.Text += item.ToString();} 建议去看msdn 里面的东西...

在文本框中输入文字,单击“添加”按钮,则将文本框中文字添加到列表框...
PrivateSubCommand1_Click()ListBoxAdditemText1Text EndSub 按钮 Combo1AddItemText1 Combo1Text=Text1

C#:在多行输入的textbox里,怎样实现按下回车键后,已输入text内容变为只...
提点建议。建议下面一个Textbox,上面一个ListBox。下面Textbox输完按回车后,内容自动添加到ListBox里(ListBox内容只读),然后Textbox清空,等待下一个用户命令。这样很像DOS界面 如果用楼上的方法,Enable=false;TextBox全部只读,用户也不可以输入下一个命令了,且多行TextBox向上操作还得慢慢解析,...

VB 怎样将TEXTBOX文本框多行内容导入LISTBOX
'把多行文本框中的多行文本分行读入到 ListBox 中 Private Sub Form_Load()Text1.Text = "第一行"Text1.Text = Text1.Text & vbCrLf & "第二行"Text1.Text = Text1.Text & vbCrLf & "第三行"Text1.Text = Text1.Text & vbCrLf & "第四行"Dim strRet() As String strRet = ...

相似回答
大家正在搜