日期:2014-05-18 浏览次数:21296 次
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);
------解决方案--------------------