Re: Определение расположения колонок в ListView
От: a-sm  
Дата: 26.10.06 08:39
Оценка:
Здравствуйте, x501, Вы писали:

X>Как узнать порядковый номер колонки в ListView, после перетаскивания её мышью?

X>Свойство Index при этом не меняется.

Примерно такой код, правда сам пока не пробовал


[DllImport("user32.dll", CharSet=CharSet.Auto)]
private static extern int SendMessage(
            IntPtr hWnd, int msg, int wParam, int [] lParam);

private const int LVM_FIRST = 0x1000;
private const int LVM_GETCOLUMNORDERARRAY = (LVM_FIRST + 59);

private static int[] GetColumnHeaderOrder(ListView lv)
{
    int count = lv.Columns.Count;
    int[] order = new int[count];

    if (SendMessage(lv.Handle, LVM_GETCOLUMNORDERARRAY, count, order) == 0)
            throw new ApplicationException(
            "Column");

    return order;
}

private void button1_Click(object sender, System.EventArgs e)
{
        
    int[] orders = GetColumnHeaderOrder(listView1);

    for (int i = 0; i < listView1.Columns.Count; i++)
        Console.WriteLine(listView1.Columns[i].Text +
            ":Position=" + orders[i].ToString());
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.