Foxtable(狐表)用户栏目专家坐堂 → [分享]关于狐表编程的一点心得


  共有13951人关注过本帖树形打印复制链接

主题:[分享]关于狐表编程的一点心得

帅哥哟,离线,有人找我吗?
菲舍尔
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:509 积分:3547 威望:0 精华:3 注册:2012/11/13 15:49:00
[分享]关于狐表编程的一点心得  发帖心情 Post By:2012/12/21 11:07:00 [只看该作者]

使用狐表差不多一年左右了,也写了几个小项目,现就一些狐表编程的一些心得和大家分享一下:

 

一、事件驱动

    什么叫做事件驱动?狐表中所有对象都有不同的事件,我们编程就是为不同的事件编写代码,以响应事件的发生,达到我们的编程目的。

    在编写事件驱动的代码时,大家要注意一个原则,就是在事件处理的代码中不应该有触发该事件的代码

怎么理解呢?下面举一个例子:

    论坛上有一个帖子是关于模式窗口的,楼主的本意是,在窗口退出时,提示用户是否退出,如果是,就退出项目,如果否就返回窗口。为达到目的,楼主在窗口的beforeclose事件中写了如下的代码:

    If MessageBox.Show("退出吗?","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Question) = 6
        Syscmd.Project.Exit()
        Return
    Else
        e.Cancel = True
    End If

 表面上看,这段代码时没有问题的,但实际上执行时就会发现:当你点是的时候,程序陷入了死循环状态

 为什么呢?

     原因就是,这段代码本身是处理beforeclose事件的,而执行这段代码的时候,窗口还没有关闭,因此,

当   Syscmd.Project.Exit()执行的时候,又会引发另一个beforeclose事件,所以就陷入了死循环当中。

正确的写法应该是这样:

在beforeclose事件中写:

    If MessageBox.Show("退出吗?","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Question) = DialogResult.no '当用户点击否的时候
        e.Cancel = True   '返回窗口
    End If

在afterclose事件中写:

Syscmd.Project.Exit()

 

这样就不会发生错误了。

 

 

 

(未完待续)

 


 


 

   


[本帖被加为精华]
 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/12/21 11:20:00 [只看该作者]

呵呵,先给精华,再等后续篇章

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
lin_hailun
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/12/21 11:50:00 [只看该作者]

 期待楼主写学习心得。

 回到顶部
帅哥哟,离线,有人找我吗?
blackzhu
  4楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57640 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2012/12/21 13:22:00 [只看该作者]

    老大 这个退出事件 我以前也纠结过.以前还跟人讨论过,也是范了同样的错误.这个范例老大应该写入帮助的.

小鱼儿(费舍尔,因为NBA的一个大牌球员叫老鱼,英文名叫费舍尔,所以呵呵!)写了20多年的代码,经验无可比拟.因为小鱼儿已经和一些狐友成立一个工作室(我也参与在内),专门做狐表的项目支持,技术支持,模块支持,教学支持的一些具体工作,所以会写一些专门的文章来提高知名度.望各位老大支持下.

  有项目需求(不管是项目的,模块的,技术的)可以加入能量软件工作室客户群  群号:114738135   非诚勿扰. 声明一点,需要收费,费用群内谈.

 回到顶部
帅哥哟,离线,有人找我吗?
万通
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:182 积分:1968 威望:0 精华:0 注册:2012/7/2 9:35:00
  发帖心情 Post By:2012/12/21 14:23:00 [只看该作者]

以下是引用blackzhu在2012-12-21 13:22:00的发言:
    老大 这个退出事件 我以前也纠结过.以前还跟人讨论过,也是范了同样的错误.这个范例老大应该写入帮助的.

小鱼儿(费舍尔,因为NBA的一个大牌球员叫老鱼,英文名叫费舍尔,所以呵呵!)写了20多年的代码,经验无可比拟.因为小鱼儿已经和一些狐友成立一个工作室(我也参与在内),专门做狐表的项目支持,技术支持,模块支持,教学支持的一些具体工作,所以会写一些专门的文章来提高知名度.望各位老大支持下.
20多年的代码经验,看来牛人一个啊!呵呵。图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
菲舍尔
  6楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:509 积分:3547 威望:0 精华:3 注册:2012/11/13 15:49:00
  发帖心情 Post By:2012/12/21 15:57:00 [只看该作者]

多谢各位老大的打赏,我会更有动力完成这篇文章的图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
mam0094
  7楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:153 积分:1995 威望:0 精华:2 注册:2011/4/9 11:53:00
  发帖心情 Post By:2012/12/21 16:52:00 [只看该作者]

以下是引用blackzhu在2012-12-21 13:22:00的发言:
    老大 这个退出事件 我以前也纠结过.以前还跟人讨论过,也是范了同样的错误.这个范例老大应该写入帮助的.

小鱼儿(费舍尔,因为NBA的一个大牌球员叫老鱼,英文名叫费舍尔,所以呵呵!)写了20多年的代码,经验无可比拟.因为小鱼儿已经和一些狐友成立一个工作室(我也参与在内),专门做狐表的项目支持,技术支持,模块支持,教学支持的一些具体工作,所以会写一些专门的文章来提高知名度.望各位老大支持下.

  有项目需求(不管是项目的,模块的,技术的)可以加入能量软件工作室客户群  群号:114738135   非诚勿扰. 声明一点,需要收费,费用群内谈.

 

完了,看来今后别想从你们嘴里抢食了,, 呵呵! 图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
sunbrain
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:383 积分:2439 威望:0 精华:0 注册:2011/12/3 22:19:00
  发帖心情 Post By:2012/12/22 0:24:00 [只看该作者]

支持

 回到顶部
帅哥哟,离线,有人找我吗?
temblar
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:313 积分:2913 威望:0 精华:0 注册:2012/7/20 16:04:00
  发帖心情 Post By:2013/1/4 15:52:00 [只看该作者]

(未完待续)

继续等,楼主的这条经验已经应用,谢谢。


 回到顶部