写一个通用方法。
传入的参数,第一个默认是checkbox,后边的可以是textbox、也可以是combbox、也可以是日期控件。而且除了checkbox的数量固定为一个,其他参数传入的数量都不固定。
如果checkbox是选中的呢,textbox、combbox、等等其他控件 全部为可写的。
如果checkbox没有选中的呢,textbox、combbox、等等其他控件 全部为只读的。
问如何实现这个方法?
传入的参数,第一个默认是checkbox,后边的可以是textbox、也可以是combbox、也可以是日期控件。而且除了checkbox的数量固定为一个,其他参数传入的数量都不固定。
如果checkbox是选中的呢,textbox、combbox、等等其他控件 全部为可写的。
如果checkbox没有选中的呢,textbox、combbox、等等其他控件 全部为只读的。
问如何实现这个方法?
解决方案 »
- 怎么获取本地服务的描述信息
- 生成数据集时出现"未指定的错误"???
- sql2005+vs2008(C#)数据库应用软件开发
- 送分,做一个类似网吧定时更新客户端文件的程序,大概多少钱?
- 谁有<<Beginning Visual C#>>的源代码?是清华出的. EISBN是1-86100-758-2. 谢先!网上找都找不到!
- datagridView的AutoSizeMode,设定后无效,求解
- 如何在C#中实现记事本中的替换功能?
- 求助:生成ICSharpCode.SharpZipLib.dll与程序原有的版本不一致
- (winform)请问怎么才能在一个窗体访问另一个窗体的组件?有代码!
- C#学习问题
- .net framework 4.0 SetWindowsHookEx 疑难问题
- System.Data.SqlClient.SqlBulkCopy问题
{
if(cb.Checked)
{
foreach(Control c in cs)
{
c.readobly=false;
}
}
else
{
foreach(Control c in cs)
{
c.readobly=true;
}
}
楼主可以根据这个来调整吧,可能大小写没区分
{
foreach (var item in controls) item.Enabled = cb.Checked;
}
public void Method(CheckBox checkbox, params Control[] controls)
{
if (checkbox.Checked)
{
foreach (var item in controls)
{
var propertyInfo = item.GetType().GetProperty("ReadOnly");
if (propertyInfo == null)
continue;
propertyInfo.SetValue(item, false, null);
}
}
else
{
foreach (var item in controls)
{
var propertyInfo = item.GetType().GetProperty("ReadOnly");
if (propertyInfo == null)
continue;
propertyInfo.SetValue(item, true, null);
}
}
}
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent(); TestClass a = new TestClass(); a.Method(new CheckBox(), new TextBox(), new ComboBox().....);
}
}