Чтобы добавить некоторую логику до запуска события SizeChanged
, необходимо создать подкласс существующего элемента управления ListView
. Создать новый класс в своем проекте и вставить в него этот код:
public class CustomListView : ListView
{
protected override void OnSizeChanged(System.EventArgs e)
{
//Fire my custom method before the ListView's size is changed
MyCustomMethod();
base.OnSizeChanged(e);
}
private void MyCustomMethod()
{
//Insert your custom logic here
//...
}
}
Затем создайте свой проект и используйте этот элемент управления CustomListView
(или как вы его называете) вместо стандартного ListView
.
В качестве альтернативы,если вы хотите отделить пользовательскую логику от самого элемента управления, вы можете сделать так, чтобы ваш пользовательский просмотр списка вызывал событие.Затем вы можете обработать это новое событие (мы будем называть его SizeChanging
для согласованности) везде, где вам нужно в вашем коде.Например, изменив приведенный выше пример:
public class CustomListView : ListView
{
public event EventHandler SizeChanging;
protected override void OnSizeChanged(System.EventArgs e)
{
//Raise the SizeChanging event before the ListView's size is changed
if (SizeChanging != null) {
SizeChanging(this, e);
}
base.OnSizeChanged(e);
}
}