首页 新闻 会员 周边 捐助

DataGridView.OnColumnRemoved如何实现只有在设计模式下删除列时才执行?

0
悬赏园豆:10 [已关闭问题] 关闭于 2010-09-20 09:13

override了DataGridView.OnColumnRemoved事件,但是发现它在以下三种情况都会触发:设计模式下关闭窗体,设计模式下删除列,运行模式下关闭窗体。
现在问题来了,我想要的效果是能判定只有在“设计模式下删除列”才执行我的功能。
PS:不一定要在OnColumnRemoved事件里面做,能实现这个功能就行。

烈火★寒冰的主页 烈火★寒冰 | 菜鸟二级 | 园豆:210
提问于:2010-08-24 13:11
< >
分享
所有回答(2)
0

有个变量是标记设计模式的,具体,搞忘记了,回头我查下.

 

if (this.DesignMode)
{

    // 在设计模式下删除列时,需要执行的你的代码.
}

Launcher | 园豆:45050 (高人七级) | 2010-08-24 13:16
没错,这个可以判别是设计模式还是运行模式。不过我的问题是:只有在“设计模式下删除列”才执行我的功能。而如果只是用DesignMode判断,在设计模式下关闭窗体时也执行了,而且传回来的参数e是所有列,也就是说关闭窗体时有几个列就会触发几次,这正是我最不想看到的。
支持(0) 反对(0) 烈火★寒冰 | 园豆:210 (菜鸟二级) | 2010-08-24 13:26
@烈火★寒冰: "在设计模式下关闭窗体" 这个过程本身就是要"删除列"的,不仅关闭窗体,你添加列后,它也要执行,虽然你没删除列.还有就是你修改了Designer.cs,它也会触发.
支持(0) 反对(0) Launcher | 园豆:45050 (高人七级) | 2010-08-24 13:56
0

k可以通过添加设计时行为来实现 

可以参考  如何:在设计模式下扩展控件的外观和行为

HUHU慈悲 | 园豆:9973 (大侠五级) | 2010-08-24 13:41
谢谢了~链接打不开呢。 ------------------------------------------------------------------------- 抱歉!给您带来麻烦了! 您访问的资源不存在,请确认您输入的地址是否正确,如果问题持续存在,请发邮件至contact@cnblogs.com与网站管理员联系。
支持(0) 反对(0) 烈火★寒冰 | 园豆:210 (菜鸟二级) | 2010-08-24 13:50
大侠给的链接是MSDN上的这篇吧:http://msdn.microsoft.com/zh-cn/library/ms171820.aspx。看了两遍,还是没有头绪。 还请指点,有劳。
支持(0) 反对(0) 烈火★寒冰 | 园豆:210 (菜鸟二级) | 2010-08-24 14:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册