新发现,好像是CellValueChanged事件中用了MessageBox.Show();之后就不触发Click事件了,怎么才能既用MessageBox.Show();又触发Click事件呢?

解决方案 »

  1.   


    是你自己写的代码问题不要归纠于DataGridView的BUG。 怎么可能会不触发Click事件呢。我们都用的好好的
      

  2.   

    大哥,没有模态对话框时是可以触发的,但是你在CellValueChanged事件中加个MessageBox.Show("修改成功!");试试,保证不触发Click事件,郁闷……
      

  3.   

    大哥,没有模态对话框时是可以触发的,但是你在CellValueChanged事件中加个MessageBox.Show("修改成功!");试试,保证不触发Click事件,郁闷……
    老大。你要搞清楚。模态对话框他是线程阻塞的呀,你不会自己弄个非模态的窗体么。把他设成TopMost不就可以了么。
      

  4.   

    不要乱用MessageBox
    你这每改一个就弹出一个框,用户体验是非常不好的,用户没事就点框玩了,什么都不用干
      

  5.   

    所有点击事件都是基于windows消息的
    你用模态对话框阻塞了主线程,那么消息来了,主线程繁忙,没有及时处理,等主线程不忙了,消息早就过去了
    消息不会永远排队等待,超时了就被丢弃了
      

  6.   

    大哥,没有模态对话框时是可以触发的,但是你在CellValueChanged事件中加个MessageBox.Show("修改成功!");试试,保证不触发Click事件,郁闷……
    老大。你要搞清楚。模态对话框他是线程阻塞的呀,你不会自己弄个非模态的窗体么。把他设成TopMost不就可以了么。
    大哥,这个我还真不知道唉,可是我不希望用户在看对话框时点其他东东啊,我想知道线程能不能再恢复到阻塞前的状态呀?
      

  7.   

    大哥,您多虑了,我用了一个checkbox按钮可以屏蔽弹出框的,我弄弹出框主要是为了用户可以撤消修改,一切全是需求惹的祸!能不能在阻塞前把消息记住呢?