Здравствуйте, 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());
}