`
huanghuaibin
  • 浏览: 68794 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

C#设置Listbox的ItemHeight

阅读更多

      这也是在使用Listbox的时候遇到的问题,ItemHeight的默认值是13,当在属性窗口里更改它时,改了又变回去了。后来上网查了下资料,原来Listbox默认是不能更改ItemHeight的。想要更改的话,需要这样做:
      首先设置DrawMode属性为OwnerDrawVariable,自己画Listbox。
      然后处理DrawItem和MeasureItem两个事件,DrawItem是在显示项时触发,MeasureItem是在要计算项的宽高时触发。在DrawItem里重新绘制项目,如下:    

程序代码 程序代码
            e.DrawBackground ();
            e.DrawFocusRectangle ();
            e.Graphics.DrawString (listBox1.Items[e.Index].ToString(), e.Font, new SolidBrush (e.ForeColor), e.Bounds);

      可以在MeasureItem里设置ItemHeight      

程序代码 程序代码
            e.ItemHeight = 20;


      如果只是这样简单的设个值的话可以不用MeasureItem事件了,因为这里已经可以在属性窗口里更改ItemHeight的值了。

分享到:
评论

相关推荐

    C#277重绘ListBox控件 源代码

    本文将深入探讨如何在C#中实现ListBox控件的重绘,以及源代码背后的原理和步骤。 首先,理解重绘的基本概念。在Windows Forms中,控件的外观是由其OnPaint方法处理的,这是系统绘制控件的地方。重绘ListBox意味着...

    ListBox滚动条

    if (listBox1.Items.Count > listBox1.Height / listBox1.ItemHeight) listBox1.ScrollBars = ScrollBars.Vertical; else listBox1.ScrollBars = ScrollBars.None; ``` 5. 自定义滚动条行为: 除了设置滚动条...

    VC Listbox自绘,实现不同高度以及自动换行

    pMeasureItemStruct->itemHeight = nHeight; pMeasureItemStruct->itemWidth = ...; // 可以根据需要设置项的宽度 dc.SelectObject(pOldFont); } ``` 接下来,我们关注自动换行功能的实现。标准的Listbox控件...

    利用ListBox控件实现数据源字段的选择

    在本文中,我们将深入探讨如何利用ListBox控件来实现数据源字段的选择,特别是针对C#编程语言。 首先,我们需要理解ListBox的基础概念。ListBox控件是一个多选列表,用户可以选择一个或多个列表中的项。在C#中,...

    listbox 实现图片浏览

    根据需求调整`ListBox`的样式,例如,设置`ItemHeight`以适应图像大小,或者设置`OwnerDraw`属性为`true`来自定义绘制行为。 ### 9. 兼容性与适应性 在不同的平台和设备上,可能需要处理不同尺寸的屏幕和分辨率。...

    C#使用多选列表框控件

    在C#编程中,多选列表框控件(ListBox)是一种常见的用户界面元素,它允许用户从一组选项中选择一个或多个项目。本教程将深入探讨如何在C#应用程序中有效地利用多选列表框控件,提高用户体验并实现更丰富的交互功能...

    ListBox的自绘

    1. **创建自定义控件类**:在C#中,可以创建一个新的类,如`AutoWrapListBox`,并让它继承自`ListBox`。 ```csharp public class AutoWrapListBox : ListBox { // 在这里添加新的属性和方法 } ``` 2. **重写`...

    C# SocketHelper 源码

    this.listBox1.ItemHeight = 12; this.listBox1.Location = new System.Drawing.Point(12, 141); this.listBox1.Name = "listBox1"; this.listBox1.Size = new System.Drawing.Size(572, 88); this.listBox1....

    ListBox插入红蓝间隔的行字体

    这段代码的核心在于,我们遍历ListBox中的每个项,根据索引的奇偶性设置不同的字体颜色,然后使用`Graphics`对象绘制文本。这样,当ListBox重新绘制时,每一行都会按照我们的规则显示不同颜色的字体。 为了方便使用...

    数据的录入功能

    在C#中,我们可以使用`BindingSource`组件作为中介,将ListBox的DataSource属性设置为`BindingSource`,并将`BindingSource`的数据源设置为我们想要显示的数据集。 3. **数据加载**:加载数据到ListBox,可以是硬...

    API精灵源码(C#编)

    this.tiplist.ItemHeight = 12; this.tiplist.Location = new System.Drawing.Point(8, 43); this.tiplist.Name = "tiplist"; this.tiplist.Size = new System.Drawing.Size(184, 110); this.tiplist...

    用C#语言写的多人聊天(Sockets)

    this.lbClients = new System.Windows.Forms.ListBox(); this.button1 = new System.Windows.Forms.Button(); this.label1 = new System.Windows.Forms.Label(); // 设置组件属性 this.lbClients.ItemHeight =...

    WindowsFormsApplication8.zip

    Rectangle结构用于表示矩形区域,可以通过ListBox.ItemHeight和ListBox.ItemWidth来获取项的高度和宽度,进一步计算出图片和文本的坐标。 5. **DrawBackground()和DrawFocusRect()方法**:在自定义绘制时,为了保持...

    DemoList.rar_DemoList

    List控件通常可以是ListView、ListBox或DataGrid等形式,它们都用于展示一系列项目,每个项目包含一项或多项信息。在Windows Forms中,我们通常使用ListView控件来创建类似表格的视图,而ASP.NET中则常用GridView或...

Global site tag (gtag.js) - Google Analytics