Wpf TextChanged事件导致死循环,事件触发循环问题
生活随笔
收集整理的這篇文章主要介紹了
Wpf TextChanged事件导致死循环,事件触发循环问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、實例:
說明:當TextBox控件的Text內容發生變化時,TextChanged事件觸發,并且會立即同步執行。
基于這個特點,設置一個全局變量標識,ChangeTxtB,如果是正在修改txtB的時候,不執行txt_TextChanged事件內容。
這樣就可以解決TextChanged事件帶來的死循環問題。
//比特 private void txtb_TextChanged(object sender, TextChangedEventArgs e) {if (ChangeTxtB) //如果當前是正在修改txtB,后面的代碼不執行return;try{if (string.IsNullOrEmpty(txtb.Text)){txtb.Focus();return;}double number = double.Parse(txtb.Text);txtB.Text = (number / 8.0).ToString();}catch (Exception ex){ShowError(ex.Message);} } //標識txtB對話框正在修改數據 private bool ChangeTxtB = false; //字節 private void txtB_TextChanged_1(object sender, TextChangedEventArgs e) { label1.Content = ""; try { if (string.IsNullOrEmpty(txtB.Text)) {txtB.Focus();return; } //標識正在修改txtB ChangeTxtB = true; //吉字節變換是統一修改其他內容 double number = double.Parse(txtB.Text); txtb.Text = (number * 8).ToString();//當修改Text屬性時,txtb_TextChanged會立即同步觸發 txtKB.Text = (number / 1024.0).ToString(); txtMB.Text = (number / 1024.0 / 1024.0).ToString(); txtGB.Text = (number / 1024.0 / 1024.0 / 1024.0).ToString(); txtTB.Text = (number / 1024.0 / 1024.0 / 1024.0 / 1024.0).ToString(); } catch (Exception ex) { ShowError(ex.Message); } //標識結束修改txtB ChangeTxtB = false; }?
總結
以上是生活随笔為你收集整理的Wpf TextChanged事件导致死循环,事件触发循环问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux系统编程之--守护进程的创建和
- 下一篇: HDU1495 非常可乐