C# - Программно щелкните столбец ListView
Есть ли способ программно щелкнуть столбец ListView, как если бы вы обычно щелкали по нему?
3 ответа
Неважно, просто понял, используя эту страницу.
ColumnClickEventArgs args = new ColumnClickEventArgs(0);
listView1_ColumnClick(this, args);
Разве вы не можете просто вызвать событие ColumnClick и передать номер столбца в ColumnClickEventArgs?
http://msdn.microsoft.com/en-us/library/system.windows.forms.listview.columnclick.aspx
http://msdn.microsoft.com/en-us/library/system.windows.forms.columnclickeventargs.aspx
Пример... эээ... не совсем, так как я на расстоянии нескольких сотен миль от ближайшей установки VS и не очень хорошо помню синтаксис без него!
Что-то вроде попытки псевдокода...
//initialize your event arguments
ColumnClickEventArgs eArgs = new ColumnClickEventArgs(columnindex);
//declare your method
private void myColumnClick(object o, ColumnClickEventArgs e)
{
//do your stuff
}
//call your method to do stuff
myColumnClick(ListView1, eArgs);
Я имею в виду, что на самом деле все, что вы делаете, это фактически передаете номер столбца, по которому щелкали вместе с объектом списка, как если бы вы создавали обработчик событий - вы просто не создаете обработчик событий, и при этом вы не используете OnColumnClick событие, чтобы уволить его.
Это может быть сбито кем-то, но AFAIK это должно работать...
ListView
элемент управления абсолютно ничего не делает при нажатии на заголовок столбца; в любом случае единственное предпринятое действие будет выполняться в вашем собственном обработчике событий, поэтому я бы предложил просто вызвать ваш обработчик событий (или выделить общий код в отдельный метод, как это было бы лучше всего) и вызывать его всякий раз, когда вы хотите смоделировать щелчок заголовка столбца).