Как получить объект при нажатии на него

292
24 августа 2017, 18:36

Есть функции нажатия на textBox'ы:

private void TextBox1_PreviewMouseDown(object sender, MouseButtonEventArgs e) {
      TextBox1.BorderBrush = System.Windows.Media.Brushes.Red;
      TextBox1.IsEnabled = false;
      TextBox1.Text = "Press keys combinations";
}
private void TextBox2_PreviewMouseDown(object sender, MouseButtonEventArgs e) {
      TextBox2.BorderBrush = System.Windows.Media.Brushes.Red;
      TextBox2.IsEnabled = false;
      TextBox2.Text = "Press keys combinations";
}

Но тут происходит дублирование кода, что не есть хорошо. Можно ли избавиться от этого дублирования?

Как сделать одну функцию на оба объекта интерфейса? Представляю себе что-то вроде этого:

private void TextBox1and2_PreviewMouseDown(object sender, MouseButtonEventArgs e) {
      TextBox tb = e.GetObject();
      tb.BorderBrush = System.Windows.Media.Brushes.Red;
      tb.IsEnabled = false;
      tb.Text = "Press keys combinations";
}
Answer 1

.cs:

using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
namespace WpfApplication1 {
    public partial class MainWindow : Window {
        public MainWindow() {
            InitializeComponent();
        }
        private void TextBox1and2_PreviewMouseDown(object sender, MouseButtonEventArgs e) {
            TextBox tb = sender as TextBox;
            tb.BorderBrush = System.Windows.Media.Brushes.Red;
            tb.IsEnabled = false;
            tb.Text = "Press keys combinations";
        }
    }
}

XAML:

 <TextBox PreviewMouseDown="TextBox1and2_PreviewMouseDown"/>
READ ALSO
Включить GIF во время выполнения кода WinForms C#

Включить GIF во время выполнения кода WinForms C#

Уверен, что ответ прост, но все жеЕсть код:

262
Phantomjs медленно работает на windows 7

Phantomjs медленно работает на windows 7

Проблема следующая, использую phantomjs для выполнение рутинных задач для сайта https://teasernetcom/, код написан на c#

222