C# 如何让ListBox追踪显示最后一项而不选中它?
在C#中想用一个ListBox做出日志滚动显示效果,即出现新日志行时自动滚动显示到最后一行.但使用:listBox1.SelectedIndex=listBox1.Ite...
在C#中想用一个ListBox做出日志滚动显示效果,即出现新日志行时自动滚动显示到最后一行.
但使用:listBox1.SelectedIndex = listBox1.Items.Count - 1;时,ListBox的最后一行会呈现高亮选中状态,不想要这个选中效果,请问应该如何实现? 展开
但使用:listBox1.SelectedIndex = listBox1.Items.Count - 1;时,ListBox的最后一行会呈现高亮选中状态,不想要这个选中效果,请问应该如何实现? 展开
2个回答
展开全部
你可以向listBox1的垂直滚动条发送滚动的消息,如下
using System.Runtime.InteropServices;
[DllImport("User32.dll")]
private static extern Int32 SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
public const int WM_VSCROLL = 0x0115;//垂直滚动条消息
public const int SB_LINEDOWN = 1;//向下滚动一行
public const int SB_PAGEDOWN = 3;//向下滚动一页
public const int SB_BOTTOM = 7;//滚动到最底部
private void button1_Click(object sender, EventArgs e)
{
SendMessage(listBox1.Handle, WM_VSCROLL, SB_LINEDOWN, 0);
}
using System.Runtime.InteropServices;
[DllImport("User32.dll")]
private static extern Int32 SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
public const int WM_VSCROLL = 0x0115;//垂直滚动条消息
public const int SB_LINEDOWN = 1;//向下滚动一行
public const int SB_PAGEDOWN = 3;//向下滚动一页
public const int SB_BOTTOM = 7;//滚动到最底部
private void button1_Click(object sender, EventArgs e)
{
SendMessage(listBox1.Handle, WM_VSCROLL, SB_LINEDOWN, 0);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询