C# winform中ListBox各项之间没有分割线?(VS2013)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# winform中ListBox各项之间没有分割线?(VS2013)相关的知识,希望对你有一定的参考价值。
请问如何才能使其出现分割线
参考技术A listBox1.DrawMode = DrawMode.OwnerDrawFixed;首先将DrawMode为DrawMode.OwnerDrawFixed 或 DrawMode.OwnerDrawVariable 时,才触发该事件(DrawItem事件)
//在构造函数中写上触发的事件:
this.listBox1.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.listBox1_DrawItem);
private void listBox1_DrawItem(object sender, DrawItemEventArgs e)
Brush myBrush = Brushes.Black;
if ((e.State & DrawItemState.Selected) == DrawItemState.Selected)
myBrush = new SolidBrush(Color.FromArgb(0, 0, 255));//选中时背景颜色
else//没有选中时的背景颜色
myBrush = new SolidBrush(Color.White);
e.Graphics.FillRectangle(myBrush, e.Bounds);//填满矩形背景颜色
e.Graphics.DrawRectangle(new Pen(new SolidBrush(e.ForeColor)), e.Bounds);
e.DrawFocusRectangle();//焦点框
StringFormat stringformat = StringFormat.GenericDefault;
stringformat.LineAlignment = StringAlignment.Center;
e.Graphics.DrawString(listBox1.Items[e.Index].ToString(), e.Font, new SolidBrush(e.ForeColor), e.Bounds, stringformat);
本回答被提问者和网友采纳 参考技术B 重绘 ListItem样式追问
有代码吗?
C# Winforms:没有 AutoScroll 的滚动条
【中文标题】C# Winforms:没有 AutoScroll 的滚动条【英文标题】:C# Winforms: Scrollbars without AutoScroll 【发布时间】:2015-12-01 02:17:27 【问题描述】:我有一个 TabPage,里面有东西。我的一些用户的屏幕很小,其中一些东西不适合。当我在 TabPage 上设置 AutoScroll true 时,它会按预期添加滚动条。不过……
在这个 TabPage 中有一个 ListBox。 ListBox 的位置使得单击它以选择一个 ListItem会导致 TabPage 将整个 ListBox 滚动到视图中,这反过来又会导致单击选择错误的 ListItem。
如果我禁用 AutoScroll,ListBox 可以正常工作,但用户无法滚动 TabPage。
我曾尝试添加面板和 TableLayoutPanel,并弄乱了具有 AutoScroll 和不具有 AutoScroll 的各种组合。
我尝试了一个 DLLImport hack,它强制将一个无样式的滚动条放到面板上,但该滚动条没有做任何事情,而且它看起来不像应用程序中的其他滚动条。
编辑:请注意,有些用户的屏幕更大。在 那些 屏幕上,有足够的空间来显示整个 TabPage 而无需滚动,并且可以正常工作。
如何在没有 auto 滚动行为的情况下获得 scrollbars?
【问题讨论】:
可以依靠VScrollBar & HScrollBar手动实现滚动条。 【参考方案1】:尝试像这样创建一个新的面板控件:
public class PanelEx : Panel
protected override Point ScrollToControl(Control activeControl)
return this.DisplayRectangle.Location;
将此面板放在您的 TabPage 中,并将 Dock 属性设置为 Fill。将所有控件放入该面板而不是 TabPage。
【讨论】:
以上是关于C# winform中ListBox各项之间没有分割线?(VS2013)的主要内容,如果未能解决你的问题,请参考以下文章
C# Winforms:没有 AutoScroll 的滚动条
c# winform 程序如何同时读取两个com端口的数据,再一个界面。