2 chenqixia chenqixia 于 2016.04.06 10:41 提问

C#抛出异常哒哒哒哒哒

Form中有个datagridview,在鼠标按下datagridview的滚动条的同时,外部触发
触发关闭该Form(调用Close),Form关闭后会抛出一样,请问要怎么处理,金币
少,谢谢大家了,,,,
图片说明

4个回答

CSDNXIAOD
CSDNXIAOD   2016.04.06 11:11

c# 用 throw 来抛出异常
C# 中 throw ( 抛出异常 )的用法
002.C#中异常的抛出与捕获
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

zhangshangui_2015
zhangshangui_2015   2016.04.06 13:07

你程序报的错你没看明白吗:对象已释放,无法访问!你关闭winform窗体是用this.close()关闭的,很明显,你定义的触发事件有问题。

chenqixia
chenqixia 我没有定义触发事件,这个事件是因为用的控件Datagridview造成的 ,所以想问下有没有什么解决方法
一年多之前 回复
zhangshangui_2015
zhangshangui_2015   2016.04.06 14:09

你用的datagridview的什么事件?

chenqixia
chenqixia 回复zhangshangui_2015: 代码没办法贴,不好意思,是定义了键盘的组合键消息,然后来关闭打开的Form
一年多之前 回复
zhangshangui_2015
zhangshangui_2015 回复蓝少飞: 你把代码贴上来看看,你要用键盘的组合键,你怎么也得定义一个键盘事件吧
一年多之前 回复
chenqixia
chenqixia 这个Form,这个外部关闭是用键盘的组合键消息,收到这个消息就会调用Form的Close
一年多之前 回复
chenqixia
chenqixia 这个Form里面有个Datagridview,然后加载了一些数据,鼠标一直按住datagridview的滚动条的同时,外部触发关闭
一年多之前 回复
chenqixia
chenqixia 没用什么事件,就是关闭Form前有个操作,就是鼠标一直按住滚动条
一年多之前 回复
chenqixia
chenqixia   2016.04.06 17:53

又写了个小的程序,基本上是:
1、注册键盘中的↑为关闭Form

 Win32.RegisterHotKey(handle, (int)HotKeyID.CloseForm, (uint)KeyModifiers.None, Keys.Up);

然后

 protected override void WndProc(ref System.Windows.Forms.Message e)
        {
            if(e.Msg == 0x0312)
            {
                this.Close();
            }
            base.WndProc(ref e);  
        }

然后在鼠标按住Form中的Datagridview上的滚动条的同时,按下键盘上的↑,这个就会弹出错误
图片说明

Csdn user default icon
上传中...
上传图片
插入图片