我有一個listview控件,顯然有很多listviewitems,每當控件被重新繪製時,鼠標在「over」的項目失去它的背景顏色(即。它是白色的)。ListViewItem在重繪時丟失背景顏色並且光標位於該項目上
一旦項目再次被繪製,並且光標沒有超過它,恢復正確的背景顏色。
有誰知道爲什麼會發生這種情況,以及如何停止?
任何幫助,將不勝感激
爲了擴大這一點,並希望能多加一點背景....
它發生在Windows 7中,.NET 3.5(雖然它也發生在項目目標也是4.0)。我的開發計算機上的主題是Viao Theme 5,但它也發生在我的另一臺具有默認Windows 7主題的機器上。
ListView控件實例化這樣的...
this.PlaylistTrackList.Cursor = System.Windows.Forms.Cursors.Hand;
this.PlaylistTrackList.Dock = System.Windows.Forms.DockStyle.Fill;
this.PlaylistTrackList.FullRowSelect = true;
this.PlaylistTrackList.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
this.PlaylistTrackList.LabelWrap = false;
this.PlaylistTrackList.Location = new System.Drawing.Point(4, 4);
this.PlaylistTrackList.Margin = new System.Windows.Forms.Padding(4);
this.PlaylistTrackList.MultiSelect = false;
this.PlaylistTrackList.UseCompatibleStateImageBehavior = false;
this.PlaylistTrackList.View = System.Windows.Forms.View.Details;
比方說,有5列表視圖項,A,B,C,d,和E.如果項目BC和d的背景顏色屬性是紅色的,沒有選擇任何東西,也沒有選擇任何東西。當列表視圖控件因任何原因重新繪製時,並且光標恰好位於BC或D中的任何項目上時,則該項目將以白色背景顏色繪製,而不是應該是紅色。但是,一旦鼠標再次不在該項目上並且其重新繪製返回到紅色。
不管「真實」背景顏色屬性如何,我總是可以停止繪製光標位於白色背景上的項目?
你可以張貼一些代碼,告訴我們你現在的「漆」的方法?我認爲你在談論正常的行爲。選擇後的背景顏色變成「藍色」?也許可能你已經激活了'hoverselection'。如果將鼠標移到它們上面,項目將自動選中。 – varg
您好varg,我沒有自定義繪畫方法,它與選擇項目無關。我只是根據狀態設置各種項目的背景顏色屬性。但是,當控件重新繪製時,鼠標「超過」它們的項目的背景色將被繪製爲白色,而不是正確的背景色。 OwnerDraw爲false,HotTracking和Hover選擇也是如此。 –
這個問題需要更多細節。至少Windows版本,.NET版本,活動Windows主題和ListView初始化。最好從Designer.cs代碼複製/粘貼。 –