폼에 충격파 웨이브 플래시 개체가 있습니다. 파일을 재생 한 후 또는 다른 키를 눌러 중간에 파일을 표시하고 싶습니다. 다른 양식이 표시됩니다. 어떻게해야합니까? 이벤트를 사용해야합니까? 나는 정말로 그것을 대답하는 누군가에게 감사한다. 여기 코드 :
개인 무효 Form1_Load (개체 발신자, EventArgs 전자) {
axShockwaveFlash1.Movie = "c:/intro.swf";
axShockwaveFlash1.Forward();
axShockwaveFlash1.Play();
Form2 form2 = new Form2();
form2.Show();
}
및 form2 :
개인 무효 Form2_Load (개체 발신자, EventArgs 전자) {
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();
Closing
이벤트를 닫고 form1 인스턴스도 닫습니다. - Jalal SaidForm1
그리고 그것을 닫아라. 다른 솔루션을 사용해야합니다 : private Form1 _form1 = null; public Form2 (Form1 form1) {InitializeComponents (); _form1 = form1; } Form2_FormClosing (개체 보낸 사람, FormClosingEventArgs 전자) {_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