我们可能想在某个panel里所有textbox都通过一个方法把它触发,就不必有重复的代码,
在这 一系列的textbox,任意一个textbox内容改变时,都需要捕捉到,可能还需要做出相应的处理,
(例如,有TextBox1,TextBox2,TextBox3,TextBox4,TextBox5,TextSum,TextSum 用来合计前面5项输入的值,而且要求值改变时,累计值也跟着改变,如果不使用 UpdatePanel或者 其他的Ajax方法实现异步更新,就简单的通过 Text_changed事件来实现)
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 ……