#c# #winforms
#c# #winforms
Вопрос:
Я хочу запустить некоторый код после изменения размера моей формы. Однако следующий код никогда не запускается при изменении размера. Я уверен, что это что-то простое, что я просмотрел (я новичок в C # и программировании в целом). Спасибо.
private void CalibrationForm_ResizeEnd(object sender, EventArgs e)
{
MessageBox.Show("You are in the Form.ResizeEnd event.");
}
Комментарии:
1. Простого создания метода недостаточно. Вы также подключили событие с помощью окна свойств в конструкторе форм?
2. Я этого не сделал. Не могли бы вы просветить меня о том, как это сделать? Я знал, что это что-то тривиальное.
3. вы зарегистрировали событие в событиях формы?
4. щелкните правой кнопкой мыши на форме, затем выберите свойства, затем выберите значок событий (например, значок электричества) .. затем выберите свой метод из выпадающего списка рядом с изменением размера
5.
this.ResizeEnd = new EventHandler(CalibrationForm_ResizeEnd);
Ответ №1:
Кажется, вы не подключаете событие, даже подключаете его в свойствах (щелкните правой кнопкой мыши форму, затем свойства и выберите событие, как на картинке)
или перехватите событие в конструкторе следующим образом:
YourForm.ResizedEnd =new EventHandler(CalibrationForm_Resize);
Комментарии:
1. Спасибо. Я понятия не имел о равномерной обработке, а теперь знаю.
Ответ №2:
Поскольку это лучший результат в Google для winforms resize end, который не вызывается, вот еще один ответ для моего случая.
Изменение размера begin и изменение размера end вызываются не при программном изменении размера, а только при перетаскивании пользователем элемента управления.
В моем случае у меня есть полностью настраиваемая форма с кнопкой для изменения размера перетаскивания в углу. Поскольку функция изменяет размер вместо пользователя, простым решением является ручной вызов OnResizeBegin и завершение событий мыши вверх и вниз кнопки изменения размера, тогда в вашем коде вы можете подписаться на изменение размера end и начать события, как обычно.
private void ResizeBTN_MouseDown(object sender, MouseEventArgs e)
{
OnResizeBegin(e);
}
private void ResizeBTN_MouseUp(object sender, MouseEventArgs e)
{
OnResizeEnd(e);
}