您的位置:首页 > 其它

让窗体所有控件只读的一点心得

2008-10-22 16:00 246 查看
  遍历控件的一点心得。最近做个WinForm项目,有一个窗体,包含很多的TextBox控件,别很还有很多ComboBox控件,当窗体加载的时候需要把这些控件的ReadOnly属性设为true(ComboBox是Enable属性),让它们不能被编辑。于是开始分别写了两个方法,一个处理把TestBox,另一个专们处理ComboBox。后来一想这样通用性不强,比如,如果窗体中以后加入了其它类型的控件,又得重新写一个关于该控件的方法。一番努力之后,干脆把所有控件作为方法的参数,然后在方法里判断控件的类型。

///<summary>

///使指定控件只读或是不可编辑

///参数:

///controls:要进行操作的控件

///readOnlyFlag:是否把控件高为只读或是不可编辑

///clearFlag:是否清除该控件的Text属性

///</summary>

private void ControlsReadOnly(Control.ControlCollection controls,bool readOnlyFlag,bool clearFlag)

{

foreach (Control control in controls)

{

if (control is TextBox)

{

TextBox tb = (TextBox)control;

tb.ReadOnly = readOnlyFlag;

if (clearFlag)

{

tb.Text = string.Empty;

}

}

if (control is ComboBox)

{

ComboBox cbo = (ComboBox)control;

cbo.Enabled = !readOnlyFlag;

if (clearFlag)

{

cbo.Text = string.Empty;

}

}

if (control is DateTimePicker)

{

DateTimePicker dtp = (DateTimePicker)control;

dtp.Enabled = !readOnlyFlag;

}

}

}

  欢迎指正!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: