Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#文本框输入信息,但留下一个';*';在文本框中_C#_Sql_Windows_Text_Textbox - Fatal编程技术网

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,但需要更高的代表性哈哈!再次感谢