输入键在文本框中按下触发打开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方法。问题是什么,我该怎么做?谢谢你!

输入键在文本框中按下触发打开Form2

首先想到的是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;
        }
    }