界面进行暂时锁定[原]

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

 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()
35
36        点击之后,所有界面都被解锁 private void UnlockAllInterface()
47    }

通过上述代码就可实现想要的效果了。
posted @ 2008-02-29 19:11  Simmy.卧龙先生  阅读(504)  评论(0编辑  收藏  举报