在文本框中按Enter键以触发打开Form2

时间:2013-03-31 21:50:30

标签: c# textbox

所以我在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;
}

但是当我调试程序并输入流媒体用户名并按Enter键时,Form2无法打开。我尝试添加断点,似乎它甚至没有达到input_KeyDown方法。有什么问题,我将如何做到这一点?谢谢!

3 个答案:

答案 0 :(得分:1)

首先想到的是input_KeyDown方法没有连接到你按Enter键的文本框。特别是因为你的断点没有被击中。否则你的代码看起来会起作用,并且在我做的快速测试项目中,确实有效。因此,请检查以确保您的文本框具有input_KeyDown的KeyDown事件处理程序。

答案 1 :(得分:0)

customStreamer被声明为本地范围内的变量,而不是在formOne类中,在事件处理程序执行完毕后需要从外部引用它。

此外,您需要使用您传入的参数指定一个名为“formOne”的Form1变量,我确信您正在这样做,但只是确定。

最后,确保已通过设计器或初始化代码将EventHandler正确连接到正确的文本框。

答案 2 :(得分:0)

在input_KeyDown事件中,您将customStreamer声明为变量。 删除字符串数据类型声明,它应该工作。 像这样:

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;
        }
    }