C#文本框输入信息,但留下一个';*';在文本框中
我有一个注册系统,人们扫描条形码并登录。条形码在“*”后面有一个唯一的数字。当他们扫描代码时,它会进入列表框并清除文本框中的剩余部分,但不会清除“*” 有什么想法吗?下面是一段代码:C#文本框输入信息,但留下一个';*';在文本框中,c#,sql,windows,text,textbox,C#,Sql,Windows,Text,Textbox,我有一个注册系统,人们扫描条形码并登录。条形码在“*”后面有一个唯一的数字。当他们扫描代码时,它会进入列表框并清除文本框中的剩余部分,但不会清除“*” 有什么想法吗?下面是一段代码: private void textBox1_KeyUp(object sender, KeyPressEventArgs e) { Object returnValue; string txtend = textBox1.Text; returnVa
private void textBox1_KeyUp(object sender, KeyPressEventArgs e)
{
Object returnValue;
string txtend = textBox1.Text;
returnValue = textBox1.Text.Replace(@"*", "");
if (e.KeyChar != '*') return;
{
if (listBox1.Items.Contains(returnValue))
{
for (int n = listBox1.Items.Count - 1; n >= 0; --n)
{
string removelistitem = returnValue.ToString();
if (listBox1.Items[n].ToString().Contains(removelistitem))
{
//listBox1.Items.RemoveAt(n);
}
}
}
else
listBox1.Items.Add(returnValue);
textBox1.Clear();
System.IO.StreamWriter sw = new System.IO.StreamWriter(fullFileName);
foreach (object item in listBox1.Items)
sw.WriteLine(item.ToString());
sw.Flush();
sw.Close();
if (listBox1.Items.Count != 0) { DisableCloseButton(); }
else
{
EnableCloseButton();
}
label6.Text = "Currently " + listBox1.Items.Count.ToString() + " in attendance.";
}
}
这条线
if (e.KeyChar != '*') return;
当按下的键不是“*”时,提前结束事件处理。在下面的{}块中,它看起来像一个旧的/测试的残余
在第一个if
-块之后,else
也可能存在一些问题。我建议始终使用{},即使块中只有一行。这一行
if (e.KeyChar != '*') return;
当按下的键不是“*”时,提前结束事件处理。在下面的{}块中,它看起来像一个旧的/测试的残余
在第一个
if
-块之后,else
也可能存在一些问题。我建议始终使用{},即使块中只有一行。重新阅读您的问题后,我了解到在处理“*”后,它被插入到空文本框中
要停止处理加钥匙事件,请使用以下语句:
e.Handled = true;
这表明事件是由您的代码处理的,不应进一步处理。重新阅读您的问题后,我了解到在处理“*”后,它被插入到空文本框中 要停止处理加钥匙事件,请使用以下语句:
e.Handled = true;
这表示事件由您的代码处理,不应进一步处理。
if(e.KeyChar!='*')返回
看起来已经可疑了。正确使用大括号和空格可以挽救生命:)+1道。很难判断您是否看到了由于无意中执行if/else语句而导致的问题,或者这实际上是应该的情况。if(e.KeyChar!='*')返回代码>用于确定条形码的结尾。它确实工作正常,只是痛苦地看到“*”仍然在那里。大括号或花括号是用于定义代码块{}的符号。。。有时可以省略它们,比如在if语句中。但需要知道的是,没有大括号的if语句只使用下一个语句。您使用了一个不带大括号的if语句(因为下面返回;),然后在if下面直接使用大括号,顺便说一句,这很好,有时用于范围界定。所以它看起来像是if的一部分,但不是。因此:正确使用大括号和空格将挽救您的生命,并节省大量调试;)(对删除注释的回答)if(e.KeyChar!='*')返回
看起来已经可疑了。正确使用大括号和空格可以挽救生命:)+1道。很难判断您是否看到了由于无意中执行if/else语句而导致的问题,或者这实际上是应该的情况。if(e.KeyChar!='*')返回代码>用于确定条形码的结尾。它确实工作正常,只是痛苦地看到“*”仍然在那里。大括号或花括号是用于定义代码块{}的符号。。。有时可以省略它们,比如在if语句中。但需要知道的是,没有大括号的if语句只使用下一个语句。您使用了一个不带大括号的if语句(因为下面返回;),然后在if下面直接使用大括号,顺便说一句,这很好,有时用于范围界定。所以它看起来像是if的一部分,但不是。因此:正确使用大括号和空格将挽救您的生命,并节省大量调试;)(对删除评论的回答)同意if{}
规则。我的硬/快规则是-如果第一个块是没有大括号的单个语句,那么else块也可以是没有大括号的单个语句。如果第一个块包含多行,那么将else块也用大括号括起来会更具可读性,而不管语句的数量如何。大家好,我已经更改了If/else语句中的大括号。同时引用该代码时,它将始终是“”,因此这没有问题,如果没有“”,则它不会继续使用该代码,它将跳过it@RyanGillooly问题不在于缺少大括号,而在于我的答案行中的return
语句。每当键入的字符不是“*”时,就会执行return
语句,从而导致函数退出!我明白这一点,但我可以在文本框中键入任何我喜欢的字符,最多可以键入任意数量的字符,但只要我点击“*”它就会输入。同意if{}
规则。我的硬/快规则是-如果第一个块是没有大括号的单个语句,那么else块也可以是没有大括号的单个语句。如果第一个块包含多行,那么将else块也用大括号括起来会更具可读性,而不管语句的数量如何。大家好,我已经更改了If/else语句中的大括号。同时引用该代码时,它将始终是“”,因此这没有问题,如果没有“”,则它不会继续使用该代码,它将跳过it@RyanGillooly问题不在于缺少大括号,而在于我的答案行中的return
语句。每当键入的字符不是“*”时,就会执行return
语句,从而导致函数退出!我明白这一点,但我可以在文本框中输入任何我喜欢的字符,最多可以输入任意数量的字符,但只要我点击“*”它就会进入。太棒了!它起作用了!非常感谢,将+1,但需要更高的代表性哈哈!再次感谢你的朋友!它起作用了!非常感谢,将+1,但需要更高的代表性哈哈!再次感谢