C# - ListView列文本大小在每台计算机上都不相同

mFe*_*ein 0 c# size text listview

我正在制作一个带有列表视图的 C# 程序,在我的 PC 和上网本中,列的大小是完美的,但是当我在朋友的计算机上运行该程序时,列的大小似乎更小,文本被剪切,例如,如果我的列在我的电脑中显示“Hello Stackoverflow”,在我朋友的电脑中显示“Hello Stac...”。列的大小是在代码中设置的,而他没有调整大小......这怎么可能?我们使用相同的屏幕分辨率(1080p),即使他将分辨率更改为更大的分辨率(800x600),列文本仍然被剪切掉,只是窗口总体更大......可能是默认字体windows 造成了所有这些问题?谢谢你们!!

use*_*499 6

ListView不会覆盖该ScaleControl方法,因此它不会随着 DPI 的变化而正确缩放。您可以用您的表格来代替。此方法不需要您知道 DPI 设置。代码复制自MSDN论坛

private void ScaleListViewColumns(ListView listview, SizeF factor)
{
    foreach (ColumnHeader column in listview.Columns)
    {
        column.Width = (int)Math.Round(column.Width * factor.Width);
    }
}

protected override void ScaleControl(SizeF factor, BoundsSpecified specified)
{
    base.ScaleControl(factor, specified);
    ScaleListViewColumns(listView1, factor);
}
Run Code Online (Sandbox Code Playgroud)