界面进行暂时锁定[原]

        在项目中,有时对界面的控制是这样的,需要在当前界面操作未完成时不允许另外的界面进行操作,于是有了下面的代码:
 

 1      /**/ /// <summary>
 2    /// 控制系统维护界面当点击按钮时,对界面进行暂时锁定
 3    /// Add by: Maxc
 4    /// </summary>

 5      public   class  SetUserControlEnable
 6      {   
 7        [DllImport("user32.dll")]
 8        private static extern int SetWindowLong(IntPtr hWnd, int nIndex, int wndproc);
 9
10        [DllImport("user32.dll")]
11        private static extern int GetWindowLong(IntPtr hWnd, int nIndex);
12
13        private const int GWL_STYLE = -16;
14        private const int WS_DISABLED = 0x8000000;
15
16        private static void SetControlEnabled(Control c, bool enabled)
17        {
18            if (enabled)
19            { SetWindowLong(c.Handle, GWL_STYLE, (~WS_DISABLED) & GetWindowLong(c.Handle, GWL_STYLE)); }
20            else
21            { SetWindowLong(c.Handle, GWL_STYLE, WS_DISABLED + GetWindowLong(c.Handle, GWL_STYLE)); }
22        }

23
24        当点击按钮的时候,让所有界面都被锁定 private void LockAllInterface()#region 当点击按钮的时候,让所有界面都被锁定 private void LockAllInterface()
25        /**//// <summary>
26        /// 当点击按钮的时候,让所有界面都被锁定
27        /// </summary>

28        public static void Lock()
29        {
30            SetControlEnabled(MainContext.ms_SystemMainForm.panelFunction, false);
31            SetControlEnabled(MainContext.ms_SystemMainForm.panelTitle, false);
32            SetControlEnabled(MainContext.ms_SystemMainForm.panelMain, false);
33        }

34        #endregion

35
36        点击之后,所有界面都被解锁 private void UnlockAllInterface()#region 点击之后,所有界面都被解锁 private void UnlockAllInterface()
37        /**//// <summary>
38        /// 点击之后,所有界面都被解锁
39        /// </summary>

40        public static void UnLock()
41        {
42            SetControlEnabled(MainContext.ms_SystemMainForm.panelFunction, true);
43            SetControlEnabled(MainContext.ms_SystemMainForm.panelTitle, true);
44            SetControlEnabled(MainContext.ms_SystemMainForm.panelMain, true);
45        }

46        #endregion

47    }

通过上述代码就可实现想要的效果了。

转载于:https://www.cnblogs.com/winnxm/archive/2008/02/29/1086525.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值