winforms 有没有办法把eventargs参数从文本框转换成字符串?

9jyewag0  于 2023-01-31  发布在  其他
关注(0)|答案(1)|浏览(130)

这是我的第一个真实的的项目在C#与windows窗体,我想知道如果输入到我的文本框的字母数量是上级11,所以我用

if (e[10] != null)

但我很快意识到这只适用于字符串,而“e”不是字符串,而是“EventArgs”类型。有没有办法从它那里得到一个字符串?

daupos2t

daupos2t1#

并非所有的事件参数都有用;通常,有用的事件是那些特殊类型的事件,如MouseEventArgFormClosingEventArgs,它们携带关于事件的一些有用信息,如鼠标被点击的点,或窗体如何关闭等。
所以在这里,你不需要把事件参数转换成字符串,也不需要从中读取任何东西,你要找的信息并不存在。
在许多情况下,您只需要来自控件的信息,例如这里您对输入长度感兴趣,因此无论您使用的是哪个事件处理程序(Button的Click事件,或者TextBox的TextChanged事件)你可以检查你的TextBox的属性。这里假设textBox1是你感兴趣的,只需要检查它的Text属性的长度,如下所示:并在长度超过预期时显示一条“友好”验证消息:

if(textBox1.Text.Length >10)
{
    MessageBox.Show("More than 10 characters?!Why?! 😡");
}

一些简要说明:

  • 如果事件参数具有特殊类型,请检查e的属性以查看是否有任何有用的内容
  • sender参数是引发事件的控件,例如,在按钮上的单击事件中,它是按钮,或者在文本框的文本更改事件中,它是文本框,因此您可以取消装箱并像var btn = (Button)sender;一样使用它。
  • 无论发件人是谁,您都可以检查其中的所有内容,例如检查另一个控件的属性,如textBox1.Text

相关问题