I have a form contains a shock Wave Flash Object.I want after playing the file or in the middle of it by pressing a key another form is shown.what should I do?should I use an event? I really appreciate somebody who answer it. here the code:
private void Form1_Load(object sender, EventArgs e) {
axShockwaveFlash1.Movie = "c:/intro.swf";
axShockwaveFlash1.Forward();
axShockwaveFlash1.Play();
Form2 form2 = new Form2();
form2.Show();
}
and in form2:
private void Form2_Load(object sender, EventArgs e) {
Form1 form1 = new Form1();
form1.Close();
}
when I debug it both of them are shown but I just want form2
You can pass the Form1
instance to the Form2
constructor, and close it there, like:
public Form2(Form1 form1)
{
InitializeComponents();
form1.Hide();//hide the control from the user, or close it if it not the main form..
}
Or if you want it to close the form1
instance when a button click then:
private Form1 _form1 = null;
public Form2(Form1 form1)
{
InitializeComponents();
_form1 = form1;
}
private void button1_Click(object sender, EventArgs e)
{
if (_form1 != null)
{
_form1.Hide();
}
}
Initialize the form2 in form1:
axShockwaveFlash1.Movie = "c:/intro.swf";
axShockwaveFlash1.Forward();
axShockwaveFlash1.Play();
Form2 form2 = new Form2(this);//"this here is the form1 instance itself"
form2.Show();
Closing
event and close the form1 instance as well. - Jalal SaidForm1
and closing it. you should use the other solution : private Form1 _form1 = null; public Form2(Form1 form1) { InitializeComponents(); _form1 = form1; } Form2_FormClosing(object sender, FormClosingEventArgs e) { _form1.Close(); } - Jalal Said
you can also use timer to check weather the movie is playing or not,if not then open new form which is 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();
}
now code on timer event
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())
{
}
}
this code is working for you only when your movie is complete or for any key you can also do it in timer thanx
axShowckwaveFlash1
has an event forCompleted
orFinsihed
, subscribe to it and show the new form when its done. - Nate