您應該ListView
的OwnerDraw
屬性設置爲true
,加平局項事件處理程序是這樣的:
listView1.DrawItem += listView1_DrawItem;
這裏是一個簡單的實現你想要的,所以你可以用和調整它玩什麼:
void listView1_DrawItem(object sender, DrawListViewItemEventArgs e)
{
float emSize = e.Item.Font.Size;
Font font = new Font(e.Item.Font.FontFamily, emSize);
while(e.Graphics.MeasureString(e.Item.Text, e.Item.Font).Width>e.Item.Bounds.Width)
{
emSize--;
font = new Font(e.Item.Font.FontFamily, emSize);
e.Item.Font = font;
}
e.DrawText();
}
您看到您需要更改字體大小並測量要顯示的字符串,以便它完全適合單元格。假定如果你當前的字體大小不合適,你想把它縮小。
你有問題嘗試了一些東西,使用圖形和不同的字體測量字符串,獲取單元格寬度等? – 2014-09-24 11:23:18
對不起,我對圖形沒有任何線索,所以我也沒有 – 2014-09-24 11:30:52
你可以通過'Graphics G = anycontrolsEGYourListview.CreateGraphics()'來獲得用於測量字體的圖形對象。你以後需要使用''或'Dispose'。什麼'View'模式,你設置你'ListView'到? – TaW 2014-09-24 11:57:22