现在的位置: 首页 > 综合 > 正文

控制Windows Form上控件状态的方法

2013年09月13日 ⁄ 综合 ⁄ 共 2121字 ⁄ 字号 评论关闭

帮朋友写一个工具,用.NET 2.0的Windows Form做的。菜单栏、工具栏以及界面上的Button的Enable和Disable不知道有什么好方法。自己创造了一种,也不知道合不合适,望大家指点。

主要有工具栏上的5个按钮和界面上的一个按钮,如下图,初始时候刷新和添加是Enable的,其他都是Disable,随情况的变化根据需要Enable或Disable。

代码我是这样写的:

[Flags]
        
enum ButtonState
        
{
            
//bit位方式
            RefreshButton = 0x0001,
            SearchButton 
= 0x0002,
            AddButton 
= 0x0004,
            DelButton 
= 0x0008,
            UpdateButton 
= 0x0010,
            SourceImageButton 
= 0x0020
        }


        
private ButtonState flags = new ButtonState();

        
public void SetButtonStates(int flags)
        
{
            
this.flags = (ButtonState)Enum.Parse(typeof(ButtonState), flags.ToString());

            refreshToolStripButton.Enabled 
= Convert.ToBoolean(this.flags & ButtonState.RefreshButton);
            RefreshToolStripMenuItem.Enabled 
= refreshToolStripButton.Enabled;
            refreshToolStripMenuItem1.Enabled 
= refreshToolStripButton.Enabled;

            searchToolStripButton.Enabled 
= Convert.ToBoolean(this.flags & ButtonState.SearchButton);
            SearchToolStripMenuItem.Enabled 
= searchToolStripButton.Enabled;
            searchToolStripMenuItem1.Enabled 
= searchToolStripButton.Enabled;

            addToolStripButton.Enabled 
= Convert.ToBoolean(this.flags & ButtonState.AddButton);
            AddToolStripMenuItem.Enabled 
= addToolStripButton.Enabled;
            addToolStripMenuItem1.Enabled 
= addToolStripButton.Enabled;

            deleteToolStripButton.Enabled 
= Convert.ToBoolean(this.flags & ButtonState.DelButton);
            DeleteToolStripMenuItem.Enabled 
= deleteToolStripButton.Enabled;
            deleteToolStripMenuItem1.Enabled 
= deleteToolStripButton.Enabled;

            updateToolStripButton.Enabled 
= Convert.ToBoolean(this.flags & ButtonState.UpdateButton);
            UpdateToolStripMenuItem.Enabled 
= updateToolStripButton.Enabled;
            updateToolStripMenuItem1.Enabled 
= updateToolStripButton.Enabled;

            sourceImageButton.Enabled 
= Convert.ToBoolean(this.flags & ButtonState.SourceImageButton);
        }

 

需要改变状态的时候,调用SetButtonState,按照参数的bit位是0还是1来Enable/Disable空间。大家觉得这样的方法好吗?或者您有更好的方法,望不吝赐教。谢谢!

抱歉!评论已关闭.