【问题标题】:linking a static parameter to a textbox content value将静态参数链接到文本框内容值
【发布时间】:2013-12-25 13:55:14
【问题描述】:

在我的 WPF 应用程序界面中有一个文本框labanglestart

 private void labanglestart_TextChanged(object sender, TextChangedEventArgs e)
 {
     double a;
     double.TryParse(labanglestart.Text.ToString(), 
                     NumberStyles.Number,CultureInfo.InvariantCulture, 
                     out a);

     if (a != null )
     {
         Global2.Pat_anglestart = a;
     }
     else
     {
         labanglestart.Text = Global2.Pat_anglestart.ToString();
     }
 }

还有一个静态类Global2,它的静态属性Pat_anglestart

我想这样做:

  • 当我更改文本框的内容并将其聚焦时,
    • 如果插入的文本可以转换为双精度,则静态参数将其作为值
    • 否则文本框的内容将是参数的值(转换为字符串后)。

上述方法无效,即没有变化。

  1. 是什么原因?
  2. 如何修复我的 sn-p?

【问题讨论】:

  • 你得到了什么异常?
  • 也不例外,但是当我关注文本框并尝试修改它时,似乎引发了一个无限线程

标签: c# .net wpf multithreading static


【解决方案1】:

尝试处理 textBox LostFocus 事件,而不是 TextChanged

private void labanglestart_LostFocus(object sender, TextChangedEventArgs e)
    {
         double a;
         double.TryParse(labanglestart.Text.ToString(), NumberStyles.Number,CultureInfo.InvariantCulture, out a);
         if (a != null )
         {
             Global2.Pat_anglestart = a;
         }
         else
         {
             labanglestart.Text = Global2.Pat_anglestart.ToString();
         }
    }

【讨论】:

    【解决方案2】:

    首先,a 永远不会为空

    你必须检查 tryparse 语句的返回。

    private void labanglestart_TextChanged(object sender, TextChangedEventArgs e)
     {
     double a;
    
    
     if (double.TryParse(labanglestart.Text.ToString(), 
                     NumberStyles.Number,CultureInfo.InvariantCulture, 
                     out a))
     {
         Global2.Pat_anglestart = a;
     }
     else
     {
         labanglestart.Text = Global2.Pat_anglestart.ToString();
     }
     }
    

    那么如果您需要针对 lostFocus 事件执行此操作,请使用它。

    【讨论】:

      猜你喜欢
      • 2019-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-30
      • 1970-01-01
      • 2011-01-10
      相关资源
      最近更新 更多