c # нажатие кнопки триггер - PullRequest
0 голосов
/ 08 января 2012
private void btnBrowserGo_Click(object sender, EventArgs e)
{
    browser.Navigate(txtBrowserURL.Text);
}

Приведенный выше код направляет браузер на URL-адрес в текстовом поле. Я хотел бы, чтобы это событие также происходило, если пользователь нажимает клавишу эфира при вводе URL. У меня есть этот код (ниже), но я не знаю, как бы я назвал вышеуказанный код

private void txtBrowserURL_KeyPress(object sender, KeyPressEventArgs e)
{
    if (e.KeyChar == (char)13)
    {

    }
}

Ответы [ 3 ]

5 голосов
/ 08 января 2012

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

btnBrowserGo_Click(null, null);

Однако было бы лучше, если бы вы не обрабатывали навигацию в самом событии и просто вызывали метод.Таким образом, метод может быть вызван напрямую из любого места в классе.Это особенно полезно, если у вас есть больше логики в методе.

void NavigateBrowser()
{
   browser.Navigate(txtBrowserURL.Text);
}

Затем из любого события вы можете просто вызвать метод.

private void txtBrowserURL_KeyPress(object sender, KeyPressEventArgs e)
{
    if (e.KeyChar == (char)13)
    {
        NavigateBrowser();
    }
}

или

private void btnBrowserGo_Click(object sender, EventArgs e)
{
    NavigateBrowser();
}
1 голос
/ 08 января 2012

Попробуйте

btnBrowserGo_Click(null, null);

, так как вы не используете последние два параметра.

Однако может быть полезно извлечь «логику» в какой-то другой метод и использовать этот метод изОБА обработчики событий.

Ваша логика здесь однострочная, но может быть и больше ...

0 голосов
/ 08 января 2012
private void txtBrowserURL_KeyPress(object sender, KeyPressEventArgs e)
{
    if (e.KeyChar == (char)13)
    {
       btnBrowserGo_Click(btnBrowserGo,EventArgs.Empty);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...