如何解决(C#) 垂直对齐 CheckedListBox 项的文本
我有一个从 Windows 窗体中的 CheckedListBox
继承的类,它包含两个项目。问题如下:当我尝试增加ItemHeight
时,高度会改变,但文本在边界框的左上角。
我希望它在边界框的中心垂直对齐。我似乎找不到任何可以这样做的财产。我尝试像这样使用 DrawItem 事件
public MyCheckedList()
{
this.DrawMode = DrawMode.OwnerDrawVariable;
this.DrawItem += new
System.Windows.Forms.DrawItemEventHandler(this.OnDrawItem);
}
public override int ItemHeight
{
get; set;
}
public override DrawMode DrawMode
{
get; set;
}
public void OnDrawItem(object sender,DrawItemEventArgs e)
{
CheckedListBox list = (CheckedListBox)sender;
if (e.Index > -1)
{
object item = list.Items[e.Index];
e.DrawBackground();
e.DrawFocusRectangle();
TextRenderer.DrawText(e.Graphics,item.ToString(),list.Font,e.Bounds,list.ForeColor);
}
}
好吧,程序甚至没有进入 OnDrawItem()
方法。同样奇怪的是,我必须覆盖 ItemHeight
和 DrawMode
才能使它们正常工作。有没有别的办法?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。