C#获取ListBox中item的宽度
有时候ListBox中item的内容长度超出了ListBox的范围,使得item内容显示不完整。为了能看到item的完整内容,又不想使用滚动条的话,可以使用ToolTip来为item添加一个提示信息,当item内容长度超过ListBox的宽度时,在鼠标旁边显示item的完整内容。
获取item宽度可以使用如下的方法:
Graphics g = listbox.CreateGraphics();
int itemWidth = (int)g.MeasureString(listbox.Items[hoveredIndex].ToString(), listbox.Font).Width;
Graphics g = listbox.CreateGraphics();
int itemWidth = (int)g.MeasureString(listbox.Items[hoveredIndex].ToString(), listbox.Font).Width;
Graphics g = listbox.CreateGraphics(); int itemWidth = (int)g.MeasureString(listbox.Items[hoveredIndex].ToString(), listbox.Font).Width;
其中hoveredIndex 是当前鼠标悬停item对应的索引。
之后ToolTip的显示就很简单了:
int listWidth = listbox.Width;
if (itemWidth > listWidth)
{
toolTip.SetToolTip(listbox, tip[hoveredIndex]);
}
int listWidth = listbox.Width;
if (itemWidth > listWidth)
{
toolTip.SetToolTip(listbox, tip[hoveredIndex]);
}
int listWidth = listbox.Width; if (itemWidth > listWidth) { toolTip.SetToolTip(listbox, tip[hoveredIndex]); }