создать общий обработчик событий LostFocus в c # - PullRequest
0 голосов
/ 01 августа 2010

Вот ситуация:

http://i962.photobucket.com/albums/ae103/kashyaprakesh/misc/denominationwindow.jpg

У меня есть текстовые поля слева, которые принимают значения деноминации, а другие текстовые поля справа дают общее значение, например, для. в левом текстовом поле метки 1000, если я поставлю значение 5, то справа будет значение 5000.

Для этого я использовал обработчик событий lostFocus, но нужно ли делать обработчик событий lost focus для каждого текстового поля? Там наверняка будет другой путь.

 private void textBox6_Leave(object sender, EventArgs e)
 {
        MessageBox.Show(e.ToString());
        if (textBox6.Text == "")
        {
            string y = "0";
            textBox6.Text = y;
            textBox8.Text = y;
        }
        else
        {
            textBox8.Text = populateTotalAmount(textBox6.Text, 1000);

        }
        textBox8.ReadOnly = true;
    }

    private string populateTotalAmount(string denominations, int value)
    {
        int totalVal = Int32.Parse(denominations) * value;
        return totalVal.ToString();
    }

Я хотел бы создать общий обработчик событий, который работает с событием LostFocus, а также мне нужно передать другое значение (например, 500 100, и т. Д. И т. Д.) так что я могу использовать это значение для отправки populateTotalAmount функции.

Ответы [ 3 ]

1 голос
/ 01 августа 2010

Нет веской причины не просто перебирать текстовые поля и вычислять результат.Этот код выполняется в человеческое время, она не может определить разницу между микросекундами и миллисекундами.

Теперь вы можете иметь один Обработчик события Leave для всех текстовых полей,TextChanged тоже сработает, но это немного дезориентирует.

0 голосов
/ 01 августа 2010

Примерно так (еще не проверял)

foreach (Control ctrl in Controls)
{
   if (ctrl is TextBox && ctrl.Name.StartsWith("math"))
      ctrl.Focused += OnFocus;
}
0 голосов
/ 01 августа 2010

Предполагая, что вы используете WinForms, вы можете создать собственный элемент управления со значением умножения в качестве свойства, а затем добавить этот элемент управления в форму.

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