pla.uiMode = “None”;
pla.URL = System.IO.Directory.GetCurrentDirectory() + “/动1.mp4”;
pla.stretchToFit = true;
pla.fullScreen = true;
pla.Ctlcontrols.play();
}
private void Form1_Activated(object sender, EventArgs e)
{
start();
}
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)Keys.Escape) {
this.Dispose();
pla.Ctlcontrols.pause();
pla.Ctlcontrols.stop();
pla.close();
pla.Dispose();
pla.currentPlaylist.clear();
this.Close();
}
}
pla是windowsmideplayer控件,ESC键关闭代码如上,运行后报异常如最上,求高手帮忙讲解一下。此外,视频能正常出现,假如用form的关闭键也没有异常,但是用close方法就有如上异常。
解决方案
10
把this.Dispose()放在this.Close()后面或去掉应该不会抛异常了吧
30
还不行的话,可以这样
private void Form1_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == (char)Keys.Escape) { //this.Dispose(); //pla.Ctlcontrols.pause(); pla.Ctlcontrols.stop(); pla.close(); Thread.Sleep(1000); //pla.Dispose(); //pla已经close()了,就不要执行任何语句了 //pla.currentPlaylist.clear(); //这句可以放到pla.close()前,在这个位置肯定不行,删掉 this.Close(); } }
10
你点击关闭按钮不报错是原因是关闭按钮仅仅使用了this.Close(),你也把其他诸如pla.close()什么的都去掉,只使用this.Close不就是了