2010-09-09 85 views
0

HI我不知道是否有人會善意地看下面的代碼,並幫助補救它。我很感謝來自這個網站的貢獻者,甚至爲了達到我的目標。代碼嘗試執行以下操作,查看數組中的第一個元素,如果它是1,則它會查看元素13-16並使用BLue的前景色識別最高值,然後將該值放入第一個元素中在列表視圖的列中以及在相鄰列中放置存儲在元素7中的數組值。然而,如果元素0處的值爲零,則使用前景色或RED元素19-22進行搜索以找到最低值。然後將該值放在第一列中,並在相鄰列中放置元素7中的值。列表視圖vb.net

麻煩是不是這樣工作。我想知道有沒有人可以幫忙。非常感謝。

Public Sub listboxplayer1winodds(ByVal parray, ByVal numbofgames) 
    Dim win = System.Drawing.Color.DarkBlue 
    Dim lose = System.Drawing.Color.DarkRed 
    Dim odds = "" 
    Dim cards = "" 
    Form1.ListOddsP1.Items.Clear() 
    Form1.ListOddsP1.Columns.Add("Odds", -2, HorizontalAlignment.Left) 
    Form1.ListOddsP1.Columns.Add("Cards", -2, HorizontalAlignment.Left) 
    Dim winlvi As New ListViewItem 
    Dim loselvi As New ListViewItem 
    For k = numbofgames To 1 Step -1 
     If parray(k, 0) = 1 Then 
      Form1.ListOddsP1.ForeColor = win 

      odds = parray(k, 12) 
      cards = parray(k, 7) 
      For l = 13 To 16 
       If parray(k, l) > odds Then 
        odds = parray(k, l) 
        cards = parray(k, 7) 
       End If 
      Next l 
      Form1.ListOddsP1.ForeColor = win 
      winlvi.Text = odds 
      Form1.ListOddsP1.Items.Add(winlvi) 
      winlvi.SubItems.Add(cards) 
      Form1.ListOddsP1.ForeColor = win 
     Else 

      Form1.ListOddsP1.ForeColor = lose 
      odds = parray(k, 18) 
      cards = parray(k, 7) 
      For l = 19 To 22 
       If parray(k, l) > 0 And parray(k, l) < odds Then 
        odds = parray(k, l) 
        cards = parray(k, 7) 
       End If 
      Next l 
      Form1.ListOddsP1.ForeColor = lose 
      loselvi.Text = odds.ToString 
      Form1.ListOddsP1.Items.Add(loselvi) 
      loselvi.SubItems.Add(cards) 
      Form1.ListOddsP1.ForeColor = lose 
     End If 

    Next k 


End Sub  

感謝您的任何幫助。

+1

「它不這樣工作」是一個非常模糊的描述。請參閱http://tinyurl.com/so-hints關於如何編寫人們希望(並能夠)回答的問題的一些想法。 – 2010-09-09 06:32:26

+0

抱歉,模糊不清。第一個缺點是例程不斷創建列而不僅僅是我想要的兩個列。數據只存在於前兩欄中。其次,數據都是相同的前景色,即兩列中的所有數據都是全部紅色或全部藍色。偶爾我也會得到錯誤,無法重複值,請更改值或克隆它。再次,對於模糊性感到抱歉。 – simon 2010-09-09 06:44:25

回答

0

關於額外的列,此時您每次調用此方法時都會添加兩個新列,但您永遠不會刪除它們。

,最好的辦法是將線

Form1.ListOddsP1.Columns.Add("Odds", -2, HorizontalAlignment.Left) 
Form1.ListOddsP1.Columns.Add("Cards", -2, HorizontalAlignment.Left) 

搬出來,只有獲取形式的生命週期中調用一次,其他一些方法(我建議爲Form.Load事件處理程序)。

否則,快速和容易改變當前的代碼是改變了清晰的界限,不僅明確項目,但明確列以及:

Form1.ListOddsP1.Clear() 

關於着色,你」再調用當前類似:

Form1.ListOddsP1.ForeColor 

它說你想要的整個列表,以具有相同的顏色,你可能想要做什麼就打電話給像

Form1.ListOddsP1.Items(x).ForeColor 

其中x是您要的顏色在該行的索引,如果你只想在特定細胞的顏色,那麼你可能想要做的:

Form1.ListOddsP1.Items(x).SubItems(y).ForeColor 

其中x是行和y是列。

關於錯誤,哪一行會給出該錯誤?

+0

謝謝!謝謝!謝謝!我只有我想要的列數,並且數據以我想要的顏色呈現!至於我解決了這個錯誤,Dim winlvi作爲新的ListViewItem和Dim loselvi作爲新的ListViewItem在循環中出現錯誤的地方。感謝所有的幫助。 – simon 2010-09-09 09:15:08