日期:2014-05-18 浏览次数:21302 次
            listView1.Select();
            listView1.Items[2].EnsureVisible();
            SendKeys.Send("{RIGHT}{RIGHT}{RIGHT}{RIGHT}");
------解决方案--------------------
void EnsureColumnVisible(ColumnHeader column)
{
    if (column.ListView.Scrollable && column.ListView.IsHandleCreated)
    {
        const int SB_HORZ = 0, LVM_SCROLL = 0x1014;
        int currentPos = GetScrollPos(column.ListView.Handle, SB_HORZ);
        int columnLeft = column.ListView.Columns.OfType<ColumnHeader>().Where(c => c.Index < column.Index).Sum(c => c.Width);
        int shift = 0;
        if (columnLeft + column.Width - currentPos > column.ListView.ClientRectangle.Width )
        {
            shift = columnLeft + column.Width - column.ListView.ClientRectangle.Width - currentPos;
        }
        else if (columnLeft - currentPos < 0)
        {
            shift = columnLeft - currentPos;
        }
        SendMessage(column.ListView.Handle, LVM_SCROLL, (IntPtr)(shift), IntPtr.Zero);
    }
}
[DllImport("user32.dll", SetLastError=true)]
static extern IntPtr SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, IntPtr lParam);
[DllImport("user32.dll", SetLastError = true)]
static extern int GetScrollPos(IntPtr hWnd, int nBar);
------解决方案--------------------