我有Win7上的C#2008(Net 2.0)中的系統Windows窗體ListView,它有4列,並且處於詳細模式,帶有小圖標,full選擇,hideselection爲false,showtooltips爲真。在Windows窗體C#中將Listview列的文本對齊到正確而不更改標頭文本對齊
第3列應爲唯一對齊的右列,而不是像其他列一樣。 我已經設置相應的設計器屬性爲textalignment權,這是合乎邏輯的。 但微軟在這裏很讓人失望:Microsoft Visual Studio也將列標題對齊到我不想要的地方! 只有所有元素都應該在第3列中對齊,所有列的標題文本都將保持左對齊。這似乎是不可能的設計師設置。
我在Google搜索了很長時間,發現這個代碼對齊了我的項目,我希望它如何,但項目文本消失並再次出現,突出顯示和選擇不起作用部分ListView消失在部分或整體,文本呈現怪異和不清晰等等。 - ListView停止默認行爲後,我應用下面的代碼。我如何解決這個問題沒有這個麻煩(Ownerdraw下面的代碼設置爲true,我有Fullrowselect,hideselection false和detailsmode)。基本上我只需要第3列中的子項目按我的意願對齊,而不必更改列標題的文本對齊方式,其他所有內容均應爲默認繪圖 - 我不希望更改任何繪圖 - 只有對齊應該是我描述的自定義繪圖以上。
private void listView1_DrawSubItem(object sender, DrawListViewSubItemEventArgs e)
{
TextFormatFlags flags = TextFormatFlags.Left;
if (e.ColumnIndex == 3)
{
flags = TextFormatFlags.Right;
e.DrawText(flags);
}
else
{
e.DrawDefault = true;
}
}
private void listView1_DrawColumnHeader(object sender, DrawListViewColumnHeaderEventArgs e)
{
e.DrawDefault = true;
}