フォームにショックWaveオブジェクトが含まれています。キーを押してファイルを再生した後、または途中で別のフォームが表示されます。イベントを使用する必要がありますか。 私はそれに答える人に本当に感謝しています。 ここでコード:
private void Form1_Load(オブジェクト送信者、EventArgs e) {
axShockwaveFlash1.Movie = "c:/intro.swf";
axShockwaveFlash1.Forward();
axShockwaveFlash1.Play();
Form2 form2 = new Form2();
form2.Show();
}
そしてform2では:
private void Form2_Load(オブジェクト送信者、EventArgs e) {
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();
}
}
form2を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
イベントを処理し、form1インスタンスも閉じます。 - Jalal SaidForm1
そしてそれを閉じます。他の解決策を使用する必要があります。private Form1 _form1 = null; public Form2(Form1 form1){InitializeComponents(); _form1 = form1; Form2_FormClosing(オブジェクト送信側、FormClosingEventArgs e){_form1.Close();} } - Jalal Said
映画を再生しているかどうかを確認するためにタイマーを使用することもできます。そうでない場合は、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())
{
}
}
このコードは、ムービーが完成したとき、またはタイマーで実行できる任意のキーに対してのみ機能します。 ありがとう
axShowckwaveFlash1
のイベントがありますCompleted
またはFinsihed
、それを購読し、それが完了したら新しいフォームを表示します。 - Nate