【问题标题】:WPF event for clicking textboxes in C#在 C# 中单击文本框的 WPF 事件
【发布时间】:2013-10-22 07:36:03
【问题描述】:

如何在单击文本框时引发事件?我在 C# 中找不到 WPF 事件的引用。

这个想法是让文本框在单击时触发一个事件。例如,假设我一点击文本框,便执行记事本。

 private void textBox1_TextChanged(object sender, TextChangedEventArgs e)
 {
     hello = Process.Start("notepad");   
 }
 private void Click(object sender, MouseButtonEventArgs e)
 {    
     /* if (e.LeftButton == MouseButtonState.Pressed)
     {
         hello = Process.Start(@"notepad");                
     }*/           
 }

【问题讨论】:

    标签: c# wpf


    【解决方案1】:

    对于文本事件,使用 TextInput 事件并从 e.Text 读取输入的字符

    private void yourTextBox_TextInput(object sender, TextCompositionEventArgs e)
    {  
        if (e.Text == "K")
        {
        }
    }
    

    鼠标事件使用 MouseDown/MouseUp

    有时 MouseDown/MouseUp 不能在 TextBox 上工作,那就用这个吧:

    http://msdn.microsoft.com/en-us/library/system.windows.uielement.previewmouseup.aspx

    【讨论】:

      【解决方案2】:

      单击文本框时可以引发MouseLeftButtonDown 事件。默认情况下,此事件不会在文本框上触发。我们需要使用 UIElement.AddHandler()。

      例如:

      XAML:

      <Textbox X:Name="Name_Textbox" MouseLeftButtonDown="Name_Textbox_MouseLeftButtonDown"/>
      

      在类构造函数中:

      TextBox_Name.AddHandler(FrameworkElement.MouseLeftButtonDownEvent, new MouseButtonEventHandler("Name_Textbox_MouseLeftButtonDown"), true);
      

      在类文件中添加事件:

      private void Name_Textbox_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)  
      {
         // Your logic on textbox click
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-04
        • 1970-01-01
        • 2016-02-09
        相关资源
        最近更新 更多