1

폼에 충격파 웨이브 플래시 개체가 있습니다. 파일을 재생 한 후 또는 다른 키를 눌러 중간에 파일을 표시하고 싶습니다. 다른 양식이 표시됩니다. 어떻게해야합니까? 이벤트를 사용해야합니까? 나는 정말로 그것을 대답하는 누군가에게 감사한다. 여기 코드 :

개인 무효 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 싶어


  • 어떻게 SWF를 재생하고 있습니까? (어떤 객체 / 컨트롤을 사용하고 있습니까?) - Evan Mulawski
  • 만약axShowckwaveFlash1~을위한 이벤트가있다.Completed또는Finsihed, 그것을 구독하고 그것의 완료되면 새로운 양식을 보여줍니다. - Nate
  • 나는 그런 이벤트가 있다고 생각하지 않는다! - shiny

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();


  • 감사합니다. Jalal.이 방법을 사용하지만 form2를 닫더라도 프로그램이 진행되는 이유는 무엇입니까? - shiny
  • form1을 마음대로 닫지 않았으므로 숨김을 기억하십시오. 그래서 form2를 처리하라.Closing이벤트를 닫고 form1 인스턴스도 닫습니다. - Jalal Said
  • 나는 그것을했지만 변화는하지 않았다! - shiny
  • 개인 무효 Form2_FormClosing (개체 발신자, FormClosingEventArgs 전자) {Form1 form1 = 새로운 Form1 (); form1.Close (); } - shiny
  • 아니, 여기에Form1그리고 그것을 닫아라. 다른 솔루션을 사용해야합니다 : private Form1 _form1 = null; public Form2 (Form1 form1) {InitializeComponents (); _form1 = form1; } Form2_FormClosing (개체 보낸 사람, FormClosingEventArgs 전자) {_form1.Close (); } - Jalal Said

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())
        {
        }
    }

이 코드는 동영상이 완성되었거나 어떤 키에 대해서만 타이머에서 작업 할 수있는 경우에만 작동합니다. 고맙습니다

관련된 질문

최근 질문