2011-02-17 120 views
1

我在VB.Net Windows Forms項目中有一個標準的ListView控件。該視圖設置爲平鋪。用戶報告他們看到以下內容:ListView控件中的間距問題

ListView spacing problem in Tile mode

你知道我怎麼能解決這個問題?所有設計工作都是使用VS 2010完成的。

回答

5

是的,當您更改列表視圖的TileSize屬性並且您的程序在具有更高視頻DPI設置的計算機上運行時,會發生這種情況。這將使字體更大。導致文本不再適合平鋪。其他所有內容都由Form類中內置的自動縮放來完成。

您應該縮放圖塊大小,使其更大,以便文本再次合適。使它看起來類似於這樣:

Protected Overrides Sub OnLoad(ByVal e As System.EventArgs) 
    MyBase.OnLoad(e) 
    Using gr = Me.CreateGraphics 
     Dim tile As New Size(_ 
      CInt(Me.ListView1.TileSize.Width * gr.DpiX/96), _ 
      CInt(Me.ListView1.TileSize.Height * gr.DpiY/96)) 
     ListView1.TileSize = tile 
    End Using 
End Sub 

這是假設你所設計的形式具有默認每英寸設置96點的機器上。由於TrueType提示,縮放並不完美。