输入键在文本框中按下触发打开Form2
本文关键字:Form2 文本 输入 | 更新日期: 2023-09-27 18:06:50
FormOne:
private void input_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyData.Equals(Keys.Enter))
{
x = 5;
string customStreamer = textBox1.Text;
Form2 twitchTV = new Form2(this);
twitchTV.Show();
}
}
和FormTwo:
switch (formOne.x)
{
case 5:
axShockwaveFlash1.Movie = "http://www-cdn.jtvnw.net/widgets/live_facebook_embed_player.swf?channel=" + formOne.customStreamer;
break;
}
但是当我调试程序并输入streamer用户名并按Enter时,Form2没有打开。我试着添加断点,似乎它甚至没有达到input_KeyDown方法。问题是什么,我该怎么做?谢谢你!
首先想到的是input_KeyDown方法没有连接到您按下Enter的文本框。特别是当你的断点没有被击中的时候。否则你的代码看起来就像它会工作,并在一个快速测试项目,我做的工作。所以要确保你的文本框有一个KeyDown事件处理器input_KeyDown
customStreamer被声明为局部作用域的变量,而不是在formOne类中,在事件处理程序完成执行后需要从外部引用它。
另外,你需要分配一个名为'formOne'的Form1变量与你传入的参数,我相信你正在做,但只是确保。
最后,确保您已经通过设计器或在初始化代码中将EventHandler正确地附加到正确的文本框上。
您正在将customStreamer声明为input_KeyDown事件中的变量。删除字符串数据类型声明,它应该可以工作。这样的:
private void input_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyData.Equals(Keys.Enter))
{
x = 5;
customStreamer = textBox1.Text;
Form2 twitchTV = new Form2(this);
twitchTV.Show();
label1.Text = customStreamer;
}
}