首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C#listBox使用DrawItem来绘制Item,出不了水平滚动条解决办法

2012-01-03 
C#listBox使用DrawItem来绘制Item,出不了水平滚动条C#listBox使用DrawItem来绘制Item,就算显示的内容(图片

C#listBox使用DrawItem来绘制Item,出不了水平滚动条
C#listBox使用DrawItem来绘制Item,就算显示的内容(图片和字符串)都显示不下了,就出不了水平滚动条,哪位帮忙看一下:
this.listBox1.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawVariable;
 private void listBox1_DrawItem(object sender, DrawItemEventArgs e)
{
  ……
}
 private void listBox1_MeasureItem(object sender, MeasureItemEventArgs e)
{
  e.ItemHeight = 20;
  e.ItemWidth = 600;不知道为什么这个属性就是不起作用
}

[解决办法]
在 .NET 2.0 里不行……,还是只显示垂直滚动条,因为还有属性 HorizontalScrollbar 以及 HorizontalExtent。
发现将 HorizontalExtent 设置为比较大的取值以后(大于 ListBox.Width 就可以滚动了,但应该统计一下 ListBox 中最宽的 Item 的宽度)就可以了。
上述试验都在 VS 2005/.NET 2.0 下进行。
[解决办法]
在你的类里添加类似如下的一个方法:

C# code
[DllImport("user32.dll", CharSet = CharSet.Auto)]private static extern IntPtr SendMessage(IntPtr hWnd, int msg, int wParam, int lParam);public void UpdateHScrllBar(){    SendMessage(this.Handle, 0x194, maxLength, 0);} 

热点排行