0

所以我在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 方法。有什么问题,我将如何做到这一点?谢谢!

4

3 回答 3

1

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

于 2013-03-31T22:01:12.957 回答
0

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

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

最后,确保通过设计器或在初始化代码中正确地将 EventHandler 附加到正确的文本框。

于 2013-03-31T22:01:13.363 回答
0

You're declaring customStreamer as a variable in the event of input_KeyDown. Remove the string datatype declaration and it should work. Like this:

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;
        }
    }
于 2013-03-31T23:02:59.983 回答