C# 中使用同一个方法来触发相同类型控件的特定事件(如textbox的Text_Changed)以节省代码
时间:2010-11-22 来源:有你的城市
1,最简单的理解是
让所有的textbox 响应同一个 textbox的textchange事件。
首先编辑某一个TextBox的Text_changed事件(如TextBox1_TextChanged),其他的TextBox的Text_Changed都指定为该事件。
2, 编辑需要执行的 TextChanged事件。
然后遍历需要执行该事件的控件,发现有人写了类似下面的代码,好像不对,修改后测试也是有问题,等有空再搞清楚这个了
foreach (Control cc in this.Controls)
{
if (cc is TextBox)
{
//这句明显是错的,cc实例化后,才会有TextChanged 事件
cc.TextChanged += newEventHandler(cc_TextChanged);
}
}
或者
foreach (Control c in this.Controls)
{
Type tTemp;
tTemp = c.GetType();
switch (tTemp.ToString().ToLower())
{
//这里怎么写成 forms,web程序里的 TextBox 是 System.Web.UI.WebControls.TextBox
case "system.windows.forms.textbox":
{
c.TextChanged +=new ……