首页 文章

如何在c#中播放swf文件后显示另一个表单

提问于
浏览
1

我有一个包含一个冲击Wave Flash对象的表单 . 我希望在播放文件后或在其中间按一个键,显示另一个表单 . 我该怎么办?我应该使用一个事件吗?我非常感谢有人回答 . 这里的代码:

private void Form1_Load(object sender,EventArgs e){

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

并且在form2中:

private void Form2_Load(object sender,EventArgs e){

Form1 form1 = new Form1();
        form1.Close();
     }

当我调试它们时,它们都显示但我只想要form2

2 回答

  • 1

    您可以将 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();
    
  • 0

    您也可以使用计时器查看电影正在播放的天气,如果没有,则打开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())
            {
            }
        }
    

    此代码仅在您的电影完成时才适用于您,或者对于任何键,您也可以在计时器中执行此操作

相关问题