Как проверить, находится ли мышь в текстовом поле? - PullRequest
1 голос
/ 26 февраля 2020

Пользователь нажимает на текстовое поле. После этого он выбрал элемент из списка и программа поместила название элемента в текстовое поле.

Программа должна обновлять текст текстового поля, только если пользователь делает этот путь: Клики по текстовому полю -> Выбранный элемент из ListBox

Если пользователь делает это: Клики по текстовому полю -> Делает что-то еще -> Выбранный элемент из списка * программа не должна обновлять текст текстового поля.

Как я могу это сделать?

private void TextBox_MouseLeave(object sender, EventArgs e)
{
      mouse_leave = false;
}

private void ListBox_SelectedIndexChanged(object sender, EventArgs e)
{
     if(mouse_leave)
     {
           //Do something..
     }         
}

Ответы [ 2 ]

1 голос
/ 26 февраля 2020

Вы можете получить доступ к выбранному значению элемента, как показано в коде ниже:

public partial class Form1 : Form
{
    private bool isUpdated = false;
    public Form1()
    {
        InitializeComponent();
    }

    private void listBox1_SelectedIndexChanged(Object  sender, EventArgs e)
    {
        if (this.isUpdated)
        {
            this.textBox1.Text = ((ListBox)sender).SelectedItem.ToString();
            this.isUpdated = false;
        }

    }

    private void textBox1_Enter(object sender, EventArgs e)
    {
        this.isUpdated = true;
    }
}
0 голосов
/ 26 февраля 2020

Если я вас правильно понял, вы должны это сделать.

  1. определить переменную Publi c.

    var selectedTextBox;

  2. при нажатии пользователем на TextBox, вы должны сохранить это Имя TextBox в переменную на шаге 1.

       private void TextBox_MouseLeave(object sender, EventArgs e)
    {
          selectedTextBox=TextBox.Name ; // Or This.Name;
    }
    
  3. затем, когда пользователь нажимает на элемент в listBox, вы должны принять выбранное значение и показать в Selected TextBox на шаге 2.

    private void ListBox_SelectedIndexChanged (отправитель объекта, EventArgs e) {selectedTextBox.Text = ListBox.SelectedItem.ToString (); }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...