让窗体所有控件只读的一点心得
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;
}
}
}
欢迎指正!
///<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;
}
}
}
欢迎指正!
相关文章推荐
- 多线程应用程序中调用窗体的一点心得
- 遍历窗体中的所有TextBox控件,并为其赋值
- 多线程应用程序中调用窗体的一点心得
- 循环遍历获取窗体或页面所有同类型的控件
- c#最大化设置窗体所有控件随之变化
- MFC窗体所有控件大小随窗体改变而改变
- 控件封装的一点心得
- 设置页面的所有控件为只读,不可用
- 反射获取窗体所有控件的Text
- 使用EnumChildWindows函数遍历窗体上所有控件
- 多线程应用程序中调用窗体的一点心得
- 巧用C#实现所有窗体控件跟随窗体尺寸自由变换
- winform中如何获得窗体中所有的控件
- //显示窗体中所有控件的函数
- 窗体内所有控件。比例缩放的类
- 遍历winform窗体上的所有控件(包括DevExpress.XtraEditors控件)且对其做相应的处理
- 多线程应用程序中调用窗体的一点心得
- CRM窗体中只读的控件不会引发Update事件
- 关于C++Builder 中使用 VCLSkin 换肤控件的一点心得!在OCX(ActiveX)中的应用。
- 获取窗体上的所有控件