C# 在c中播放swf文件后如何显示另一个窗体# 我有一个表单包含一个冲击波闪存对象。我想在播放文件之后或者按下一个键中间的另一个窗体时,我该怎么办?我应该使用一个事件吗? 我真的很感激有人能回答。 代码如下:

C# 在c中播放swf文件后如何显示另一个窗体# 我有一个表单包含一个冲击波闪存对象。我想在播放文件之后或者按下一个键中间的另一个窗体时,我该怎么办?我应该使用一个事件吗? 我真的很感激有人能回答。 代码如下:,c#,C#,私有void Form1\u加载(对象发送方、事件参数e) { axShockwaveFlash1.Movie = "c:/intro.swf"; axShockwaveFlash1.Forward(); axShockwaveFlash1.Play(); Form2 form2 = new Form2(); form2.Show(); } Form1 form1 = new Form1()

私有void Form1\u加载(对象发送方、事件参数e) {

        axShockwaveFlash1.Movie = "c:/intro.swf";
        axShockwaveFlash1.Forward();
        axShockwaveFlash1.Play();
        Form2 form2 = new Form2();
        form2.Show();
    }
        Form1 form1 = new Form1();
        form1.Close();
     }
表格2:

私有void Form2_加载(对象发送方、事件参数e) {

        axShockwaveFlash1.Movie = "c:/intro.swf";
        axShockwaveFlash1.Forward();
        axShockwaveFlash1.Play();
        Form2 form2 = new Form2();
        form2.Show();
    }
        Form1 form1 = new Form1();
        form1.Close();
     }

当我调试它时,它们都会显示出来,但我只需要form2,你可以将
Form1
实例传递给
form2
构造函数,然后在那里关闭它,如:

public Form2(Form1 form1)
{
    InitializeComponents();

    form1.Hide();//hide the control from the user, or close it if it not the main form..
}
或者,如果希望在单击按钮时关闭
form1
实例,则:

private Form1 _form1 = null;
public Form2(Form1 form1)
{
    InitializeComponents();

    _form1 = form1;
}

private void button1_Click(object sender, EventArgs e)
{
    if (_form1 != null)
    {
        _form1.Hide();
    }
}
在form1中初始化form2:

axShockwaveFlash1.Movie = "c:/intro.swf";
axShockwaveFlash1.Forward();
axShockwaveFlash1.Play();
Form2 form2 = new Form2(this);//"this here is the form1 instance itself"
form2.Show();

您可以将
Form1
实例传递给
Form2
构造函数,然后在那里关闭它,如:

public Form2(Form1 form1)
{
    InitializeComponents();

    form1.Hide();//hide the control from the user, or close it if it not the main form..
}
或者,如果希望在单击按钮时关闭
form1
实例,则:

private Form1 _form1 = null;
public Form2(Form1 form1)
{
    InitializeComponents();

    _form1 = form1;
}

private void button1_Click(object sender, EventArgs e)
{
    if (_form1 != null)
    {
        _form1.Hide();
    }
}
在form1中初始化form2:

axShockwaveFlash1.Movie = "c:/intro.swf";
axShockwaveFlash1.Forward();
axShockwaveFlash1.Play();
Form2 form2 = new Form2(this);//"this here is the form1 instance itself"
form2.Show();

您还可以使用计时器检查电影是否正在播放,如果没有,则打开新窗体,即form2

 private void flash_Load(object sender, EventArgs e)
    {
        axShockwaveFlash1.Movie = @"C:\Users\Adil M\Documents\Visual Studio 2012\Projects\TProject\a.swf";
        int a = axShockwaveFlash1.MovieData.Length;
        timer1.Start();
    }
现在对计时器事件进行编码

 private void timer1_Tick(object sender, EventArgs e)
    {
        if (!axShockwaveFlash1.IsPlaying())
        {
            Fome2 fobj = new Form2();
            this.Hide();
            timer1.stop();

            fobj.show();

        }
        else if(axShockwaveFlash1.IsPlaying())
        {
        }
    }
此代码仅在电影完成时对您有效,或者对于任何键,您也可以在计时器中执行此操作
thanx

您还可以使用计时器检查电影是否正在播放,如果没有,则打开新窗体,即form2

 private void flash_Load(object sender, EventArgs e)
    {
        axShockwaveFlash1.Movie = @"C:\Users\Adil M\Documents\Visual Studio 2012\Projects\TProject\a.swf";
        int a = axShockwaveFlash1.MovieData.Length;
        timer1.Start();
    }
现在对计时器事件进行编码

 private void timer1_Tick(object sender, EventArgs e)
    {
        if (!axShockwaveFlash1.IsPlaying())
        {
            Fome2 fobj = new Form2();
            this.Hide();
            timer1.stop();

            fobj.show();

        }
        else if(axShockwaveFlash1.IsPlaying())
        {
        }
    }
此代码仅在电影完成时对您有效,或者对于任何键,您也可以在计时器中执行此操作
thanx

您如何玩SWF?(您使用的是什么对象/控件?)如果
axshowckwavelash1
有一个
已完成的事件或
已完成的事件,请订阅它并在完成后显示新表单。我认为它没有此类事件!您如何玩SWF?(您使用的是什么对象/控件?)如果
axshowckwavelash1
有一个事件用于
完成
查找
,订阅它并在完成时显示新表单。我不认为它有这样的事件!谢谢Jalal。我使用这种方法,但为什么即使我关闭form2,程序仍在运行?调试从未停止过?因为你没有按预期关闭form1,记得吗我们隐藏它。因此,处理form2
Closing
事件并关闭form1实例。私有void form2\u FormClosing(对象发送方,FormClosingEventArgs e){form1 form1=new form1();form1.close();}不,这里您正在创建一个新的
Form1
并将其关闭。您应该使用另一种解决方案:private Form1\u Form1=null;public Form2(Form1 Form1){InitializeComponents();\u Form1=Form1;}Form2\u FormClosing(object sender,FormClosingEventArgs e){u Form1.Close()}谢谢Jalal。我使用这种方法,但为什么即使我关闭form2,程序仍在运行?调试从未停止过?因为您没有按预期关闭form1,请记住我们将其隐藏。因此,请处理form2
Closing
事件并关闭form1实例。私有void form2\u FormClosing(对象发送方,FormClosingEventArgs e){Form1 Form1=new Form1();Form1.Close()}不,这里您正在创建一个新的
Form1
并将其关闭。您应该使用另一种解决方案:private Form1\u Form1=null;public Form2(Form1 Form1){InitializeComponents();\u Form1=Form1;}Form2\u FormClosing(对象发送方,formclosingerventargets){u form1.Close();}