2014-01-29 4 views
0

Я вижу много вопросов, подобных этому, но на это ничего не дает.Добавление кнопки для закрытия формы

Мне интересно, есть ли событие, которое можно добавить к кнопке, чтобы непосредственно запустить процедуру form_closing. Я понимаю, что это только один дополнительный шаг, чтобы выполнить это, используя что-то вроде:

buttonOk.Click += new EventHandler(do_something); 

private void do_something(object sender, EventArgs e) 
{ 
    this.DialogResult = System.Windows.Forms.DialogResult.OK; 
} 

но есть некоторые случаи, когда было бы выгодно, чтобы сделать что-то вроде:

buttonOk.Click += new EventHandler(form_close_event..); 

ответ

4

Вы можете использовать лямбда , чтобы избежать создания нового имени метода, если то, что вы хотите сделать, это достаточно просто:

buttonOk.Click += (sender, args) => Close(); 
+0

Именно поэтому этот сайт отлично подходит для нас, новичков, вы задаете вопрос, и он раскрывает новую концепцию (лямбда) для изучения. Спасибо! –

2

вы можете использовать anonymous method (see here) для этого, но на самом деле, это все тоже самое.

buttonOk.Click += delegate(object sender, EventArgs e) { ... }); 

Вы можете вызвать любой метод из внутри, так this.Close() тоже все в порядке.

Смежные вопросы