none
如何编码指定控件的锁定状态! RRS feed

  • 问题

  • 我们在使用Visual Studio编辑窗口界面时,可以使用右键菜单中的“锁定控件”来固定选中控件的位置,使其在设计时的位置不能更改,现在我正在做的项目实现了可视化编辑界面的功能,也能通过执行IMenuCommandService.GlobalInvoke(StandardCommands.LockControls);的方式锁定控件,但这样有个缺陷,当我执行上述语句时,只能使控件的锁定状态向相反的方向发生变化,而无法指定控件的状态,也就是说当控件为锁定状态时,我执行上面的代码,可以使控件变成非锁定状态,但如果我不知道控件的锁定状态时,想把控件变为非锁定状态却无法办到。

    现在想请教各位牛人,怎么能通过代码的方式实现来指定控件锁定状态。

    2009年6月16日 5:57

答案

全部回复

  • 你可以看看http://www.mono-project.com/WinForms_Designer的代码
    MSMVP VC++
    2009年6月16日 16:21
    版主
  • 先谢谢版主 ,看了一下,SVN的代码太大了!正在下。
    2009年6月18日 2:07
  • 简单看了一下代码,这个代码没有通过命令控制控件的锁定,而是通过控件本身的属性来实现的,这中方式满足不了我的需求,不过还是同样感谢版主。
    2009年6月18日 9:22
  • 虽然我不懂这个……但是弱弱的问一问,不能用IF判断现在的状态然后执行语句么?
    2009年6月19日 23:53
  • 你可以试试在移动,最大化,最小化触发的事件中不让用户更改,比如在窗体重绘之前,记录窗体的位置,重绘的时候,还原位置。。不过有可能就是看得出来,你可以试试让系统失去窗体的焦点试试。。
    我的博客,最近新写了一个Windows Mobile 6.5 Widget开发的文章,欢迎捧场
    尽力回答每一个问题,但不代表一定正确,希望初学者能够多自己尝试。。共勉。。:)
    2009年6月20日 14:19
    版主
  • 虽然我不懂这个……但是弱弱的问一问,不能用IF判断现在的状态然后执行语句么?
    你没看懂我的意思!我的意思是只能发送指令,不能获得控件是否锁定的状态!
    2009年6月22日 1:58
  • 你可以试试在移动,最大化,最小化触发的事件中不让用户更改,比如在窗体重绘之前,记录窗体的位置,重绘的时候,还原位置。。不过有可能就是看得出来,你可以试试让系统失去窗体的焦点试试。。
    先感谢一下,你说的的确可以实现,但是这样工作量太大。现在项目快结束了,还是不考虑了!
    2009年6月22日 2:11
  • sharp develop也有Windows Forms designer,你可以把代码下回来看看。
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful. This posting is provided "AS IS" with no warranties, and confers no rights.
    Visual C++ MVP
    2009年6月25日 20:18
    版主
  • 多谢版主 我正在下SharpDevelop 然后再分析一下,这个问题现在已经不是那么重要了! 我们说服了客户,但还是要仔细研究一下! 还有个问题 Please mark the post answered your question as the answer, and mark other helpful posts as helpful. This posting is provided "AS IS" with no warranties, and confers no rights. 这句英文是啥意思? 不好意思 见笑了!
    2009年7月8日 8:21
  • 那是签名

    Please mark the post answered your question as the answer, and mark other helpful posts as helpful. This posting is provided "AS IS" with no warranties, and confers no rights.
    Visual C++ MVP
    2009年7月8日 13:26
    版主