Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#FormClosed事件的问题_C#_.net - Fatal编程技术网

c#FormClosed事件的问题

c#FormClosed事件的问题,c#,.net,C#,.net,我在我的表格上运行网络摄像头。为了保持整洁,我想在退出应用程序时终止流。因此,我在FormClosed事件中添加了以下内容: private void Mainform_FormClosed(object sender, FormClosedEventArgs e) { // When the window is closed then shut down the webcam if (FinalVideoSource.IsRunning) { F

我在我的表格上运行网络摄像头。为了保持整洁,我想在退出应用程序时终止流。因此,我在FormClosed事件中添加了以下内容:

private void Mainform_FormClosed(object sender, FormClosedEventArgs e)
{
     // When the window is closed then shut down the webcam
     if (FinalVideoSource.IsRunning)
     {
         FinalVideoSource.Stop();
     }
     MessageBox.Show("Closing", "Closing", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
如果我的网络摄像头正在运行,一切正常。但是,如果网络摄像头经过测试,发现没有运行。然后我的表单不会关闭(我将messagebox放在那里,以测试是否调用了事件,并且除非网络摄像头正在运行,否则消息不会显示)

我猜是由于表单中有if语句引起的

有人能帮忙吗

非常感谢,,

ben

使用
FormClosing Event
而不是
FormClosed Event

使用
FormClosed Event
而不是
FormClosed Event

也许你也应该检查FinalVideoSource==null或不为空。

也许你也应该检查FinalVideoSource==null是否为空。

你试过这个方法吗“FormClosing”事件而不是“FormClosing”?否,
FormClosed
事件中的
if
语句不会导致此问题。但是,此事件在窗体关闭后引发。您可能希望在
FormClosing
事件中进行清理。是否检查了“FinalVideoSource.IsRunning”的值?它是可空的吗?@RaM如果它是可空的,它将不会从
bool?
隐式转换为
bool
您是在调试器下运行程序,还是在外部运行程序?您是否尝试过“FormClosing”事件而不是“FormClosed”?否,
FormClosed
事件中的
If
语句不会导致此问题。但是,此事件在窗体关闭后引发。您可能希望在
FormClosing
事件中进行清理。是否检查了“FinalVideoSource.IsRunning”的值?它是可空的吗?@RaM如果它是可空的,它将不会从
bool?
隐式转换为
bool
您是在调试器下运行程序,还是在外部运行?谢谢Pankaj,不过这没有什么区别。如果网络摄像头正在运行,则一切正常。但是,如果没有网络摄像头,那么活动就不会被调用,表单也不会关闭。谢谢Pankaj,不过这没有什么区别。如果网络摄像头正在运行,则一切正常。但是,如果没有网络摄像头,则不会调用事件,也不会关闭表单。这一点很好。这是我能想到的唯一一件会使表单关闭暂停的事情(即抛出异常)。是的,但是如果
FinalVideoSource
null
,那么当尝试调用该对象的属性时,将抛出异常。当程序运行时附加了一个调试器,异常会立即显示在屏幕上,使这样的问题立即显现出来。只是为了让我将来了解,如果某个事件有异常,例如视频源未初始化,它不会告诉我。。这只会使活动失败。。这是对的吗?这就是我所认为的Cody,但是没有抛出异常。。事件就是不起作用。@mrbencowell:是的,如果附加了调试器,您肯定会遇到异常。在VisualStudio中按F5时会自动发生这种情况。只有在64位版本的Windows上运行编译为“任意CPU”或“x64”的应用程序时,才会出现这种异常。这一点很好。这是我能想到的唯一一件会使表单关闭暂停的事情(即抛出异常)。是的,但是如果
FinalVideoSource
null
,那么当尝试调用该对象的属性时,将抛出异常。当程序运行时附加了一个调试器,异常会立即显示在屏幕上,使这样的问题立即显现出来。只是为了让我将来了解,如果某个事件有异常,例如视频源未初始化,它不会告诉我。。这只会使活动失败。。这是对的吗?这就是我所认为的Cody,但是没有抛出异常。。事件就是不起作用。@mrbencowell:是的,如果附加了调试器,您肯定会遇到异常。在VisualStudio中按F5时会自动发生这种情况。只有在64位版本的Windows上运行编译为“任意CPU”或“x64”的应用程序时,才会出现此类异常。