高手指點,關於事件觸發的控制 任意控件(如TextBox),有它的TextChanged事件處理代碼,但我想只要是手工改變其Text才觸發,而代碼中設置其Text值時不觸發,如何做?有沒辦法控件某一事件處理過程不觸發?請高手指點,100分相送!Tks 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 // 可以利用textbox.tag属性。// 比如代码赋值的时候,先改.tag的值为1,赋万值之后,再改成0textbox1.tag = "1";textbox1.text = "adsfasdfa";textbox1.tag = "0";//TextChanged 里面判断其.tag的值,为1则不作。if (textbox1.tag = "1"){ return;} private void textBox1_TextChanged(object sender, EventArgs e) { if (this.textBox1.Focused)//手工改变 { //... } } 謝謝上面高手指點,方法的確很好,只是問題我沒描述清楚,有一頁面包括DatetimePicker,TextBox,Listbox,Datagridview...我將這些控件相應的TextChange或ValueChange或DataSourceChanged委托給Data_Changed(Object Sender,Eventagres e)過程。樓上兩位給的方法我無法處理這種特殊情況。盼高手指點! 委托的也没问题,可以通过判断Sender private void textBox1_TextChanged(object sender, EventArgs e) { Control c = sender as Control; if (c.Focused) { //... } } 第一个就足够了吧如果textBox1_TextChanged函数只作为一个控件的委托函数,还需要判断sender吗? 你可以在不需要的时候注销委托:this.textBox1.TextChanged -= new EventHandler(textBox1_TextChanged);再在需要的时候添加委托:this.textBox1.TextChanged += new EventHandler(textBox1_TextChanged); 同一SQL语句,通过C#程序和直接从数据库管理界面查询,结果却不一样? 我用inno setup打包软件遇到的问题,是高手的请进 字符串处理 如何全局获得鼠标移动,点击之类的消息 propertyGrid控件的下拉框问题请教 c# winform 水晶报表 新手学习c# 求C# dataGridView控件的增删改查的代码例子 判断图片里有无深色怎样处理? 几个月都不见人回答的问题 关于UDP穿透 请教一个关于宏调用的问题,请多多指点?
// 比如代码赋值的时候,先改.tag的值为1,赋万值之后,再改成0
textbox1.tag = "1";
textbox1.text = "adsfasdfa";
textbox1.tag = "0";//TextChanged 里面判断其.tag的值,为1则不作。
if (textbox1.tag = "1")
{
return;
}
{
if (this.textBox1.Focused)//手工改变
{
//...
}
}
樓上兩位給的方法我無法處理這種特殊情況。盼高手指點!
{
Control c = sender as Control;
if (c.Focused)
{
//...
}
}
如果textBox1_TextChanged函数只作为一个控件的委托函数,还需要判断sender吗?
this.textBox1.TextChanged -= new EventHandler(textBox1_TextChanged);
再在需要的时候添加委托:
this.textBox1.TextChanged += new EventHandler(textBox1_TextChanged);