Определение расположения колонок в ListView
От: x501  
Дата: 21.10.04 02:26
Оценка:
Как узнать порядковый номер колонки в ListView, после перетаскивания её мышью?
Свойство Index при этом не меняется.

21.10.04 12:05: Перенесено модератором из '.NET' — AndrewVK
Re: Определение расположения колонок в ListView
От: barkas  
Дата: 21.10.04 06:05
Оценка:
Здравствуйте, x501, Вы писали:

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

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

А зачем, если не секрет? Вы можете работать с Item'ами не беспокоясь об изменении взаимного положения колонок.
... << RSDN@Home 1.1.3 stable >>
Re[2]: Определение расположения колонок в ListView
От: x501  
Дата: 21.10.04 09:54
Оценка:
Здравствуйте, barkas:

B>А зачем, если не секрет? Вы можете работать с Item'ами не беспокоясь об изменении взаимного положения колонок.


Секрета никакого нет. Просто я использую ListView для отображения таблиц данных и хочется восстанавливать расположение колонок при следующем выборе соответствующей таблицы.
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());
}
Re: Определение расположения колонок в ListView
От: h256 Россия  
Дата: 27.10.06 09:01
Оценка:
Здравствуйте, x501, Вы писали:

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

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

Columns[index].DisplayIndex
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.