我正在尝试使用以下代码来查找列表框中最长项目的宽度,然后更改列表框的HorizontalExtent
属性以适应水平滚动条范围内的项目:
Graphics widthFinder = listBox_Transactions.CreateGraphics();
int needScrollWidth = 0; int checkVal = 0;
for (int i = 0; i < listBox_Transactions.Items.Count; i++)
{
checkVal = (int)widthFinder.MeasureString(listBox_Transactions.Items[i].ToString(), listBox_Transactions.Font).Width + 1;
if (needScrollWidth < checkVal)
{ needScrollWidth = checkVal; }
}
listBox_Transactions.HorizontalScrollbar = true;
listBox_Transactions.HorizontalExtent = needScrollWidth;
listBox_Transactions.Invalidate();
代码似乎按预期工作,但widthFinder.MeasureString(listBox_Transactions.Items[i].ToString(), listBox_Transactions.Font).Width
始终返回 164 的异常。我已经搜索了可能发生这种情况的原因,但没有找到任何原因。有任何想法吗?