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 элемент управления абсолютно ничего не делает при нажатии на заголовок столбца; в любом случае единственное предпринятое действие будет выполняться в вашем собственном обработчике событий, поэтому я бы предложил просто вызвать ваш обработчик событий (или выделить общий код в отдельный метод, как это было бы лучше всего) и вызывать его всякий раз, когда вы хотите смоделировать щелчок заголовка столбца).

Другие вопросы по тегам