我有一個列表框,顯示每行中(X,Y)的某些位置。在列表框中突出顯示多個項目/行
不知何故,用戶可以在文本框中輸入幾個(X,Y)對,然後按下按鈕。
現在我想要做的是:每當用戶輸入3或4(X,Y)對時,我的算法找到匹配的對,並且那些對應的對應該被突出顯示(可以用粉紅色/紅色/任何顏色)同時全部在列表框中。
我怎麼能用我想要的顏色來突出顯示那些對(相同的索引)?
第一版:
作爲NikolaD - Nick引導,我改變DrawMode到OwnerDrawVariable和lsBoxFeature_DrawItem方法,我添加以下代碼:
private void lsBoxFeature_DrawItem(object sender, DrawItemEventArgs e)
{
e.DrawFocusRectangle();
Bitmap bmp = new Bitmap(e.Bounds.Width, e.Bounds.Height);
Graphics g = Graphics.FromImage(bmp);
foreach (var item in globalDataForAllMatchedFrames[globalDataForAllMatchedFrames.Count - 1].featureNumber)
{
if (lsBoxFeature.Items[e.Index].Equals(item))//your method that determines should current item be highlighted
{
g.Clear(Color.Red);
}
else
{
g.Clear(lsBoxFeature.BackColor);
}
g.DrawString(lsBoxFeature.Items[e.Index].ToString(), lsBoxFeature.Font, new SolidBrush(lsBoxFeature.ForeColor), e.Bounds);
e.Graphics.DrawImage(bmp, e.Bounds);
g.Dispose();
}
}
項是一個對象,其是一個PointF,現在每當該項目與listBoxFeature中的成員相等時,它應該用紅色突出顯示它們。
這裏有兩個問題:
I)似乎methos .Equals正確犯規中,如果條件檢查工作,如果該項目的PointF在listBoxFeature ===>如圖所示的結果沒什麼等於成員在我listBoxFeature
II),甚至當我運行代碼我得到一個錯誤信息如下:
第2版:
我也跟着NikolaD - Nick建議,它的工作!但有一小片來解決,它不顯示在lsBoxFeature每一行文字(的PointF座標)。
這是現在的樣子:
,這裏是輸出是如何應該是:
我怎麼能走行的TEX早在lsBoxFeature ?
看看這個['link'](http://msdn.microsoft.com/en-us/library/system.windows.forms.listview.hittest.aspx)一次。也許這對你有幫助。 –
@Mr_Green:它是一個列表框,而不是列表視圖 –
oops是的,你是對的..你有解決這個問題的方法嗎? –