how to show another form after playing swf file in c#
我有一个包含冲击波闪光物体的表单。我想播放完文件后或按一个键在文件中间显示另一个表单。我该怎么做?我应该使用活动吗?我真的很感激有人回答。代码如下:
private void form1_load(对象发送方,事件参数e){
1 2 3 4 5 6 | axShockwaveFlash1.Movie ="c:/intro.swf"; axShockwaveFlash1.Forward(); axShockwaveFlash1.Play(); Form2 form2 = new Form2(); form2.Show(); } |
在表格2中:
private void form2_load(对象发送方,事件参数e){
1 2 3 |
号
当我调试它时,两个都显示出来了,但我只需要表单2
您可以将
1 2 3 4 5 6 | public Form2(Form1 form1) { InitializeComponents(); form1.Hide();//hide the control from the user, or close it if it not the main form.. } |
或者,如果希望它在单击按钮时关闭
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 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:
1 2 3 4 5 | axShockwaveFlash1.Movie ="c:/intro.swf"; axShockwaveFlash1.Forward(); axShockwaveFlash1.Play(); Form2 form2 = new Form2(this);//"this here is the form1 instance itself" form2.Show(); |
您还可以使用计时器检查电影是否正在播放,如果没有,则打开新的窗体,即窗体2。
1 2 3 4 5 6 | 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(); } |
。
现在对计时器事件进行编码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 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()) { } } |
此代码仅在您的电影完成时才对您有效,或者对于任何键,您也可以在计时器中执行此操作。桑克斯