none
新手想請教LISTBOXITEMS RRS feed

  • 問題

  • 小弟是個正在自學的新手,最近想用RANDOM寫一個抽籤程式,

    但小弟寫完後發現數字會重復,

    小弟在改時發現有一個問題,爬文超久都沒能解決。

    以下是小弟的桯式碼(RESULT是listbox)

    Public Class Form1
        Private Sub button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim x%
            Randomize()
            x = Int(Rnd() * Val(TextBox2.Text) + Val(TextBox1.Text))
            If x = Val(result.Items) Then
                Randomize()
                x = Int(Rnd() * Val(TextBox2.Text) + Val(TextBox1.Text))
            Else
                result.Items.Add(x)
            End If
        End Sub
    End Class

    我知道問題是出自在第六行的VAL(RESULT.ITEM), 但都不知道怎搞.

    請教一下高手怎可以讀取LISTBOX的item



    • 已編輯 hugodragon 2015年11月17日 上午 04:50
    2015年11月17日 上午 04:48

解答

  • 如果您是要判斷ListBox1的Items中是否有已出現的內容值, 您可以這樣寫:

     If x = result.Items.Contains(x) Then

    • 已標示為解答 hugodragon 2015年11月17日 上午 11:07
    2015年11月17日 上午 06:11

所有回覆

  • 你要用的是不是現在 ListBox 的選擇的那一項 ?

    ListBox.SelectedItem 屬性


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2015年11月17日 上午 04:53
    版主
  • 如果您是要判斷ListBox1的Items中是否有已出現的內容值, 您可以這樣寫:

     If x = result.Items.Contains(x) Then

    • 已標示為解答 hugodragon 2015年11月17日 上午 11:07
    2015年11月17日 上午 06:11
  • 試試

    Dim guess As Integer =  5 
    Dim obj As Object
    For Each obj In listBox1.Items
        If obj.ToString().Equals(guess.ToString()) Then
            MessageBox.Show("Bingo")
        End If
    Next

    我想應該是這樣

    2015年11月17日 上午 08:09
  • ...看不懂...

    2015年11月17日 上午 11:08
  • 謝謝,

    小弟我把它改了

    if result.items.contains(x) then

    成功了,

    不會重覆,

    但..

    如果本來的那個數值己經存在,

    它會沒反應...


    • 已編輯 hugodragon 2015年11月17日 上午 11:28
    2015年11月17日 上午 11:28
  • 你的取亂數是否要先新增在list 中?確定都好了,再新增到listitem

    Dim intList As List<int> =  New List<int>() 
    Dim rna As Random =  New Random() 
    Dim i As Integer
    For  i = 0 To  5- 1  Step  i + 1
        '取1到10
        Dim NewValue As Integer =  rna.Next(1,10) 
        '不在list,就新增
        If Not intList.Contains(NewValue) Then
            intList.Add(NewValue)
        End If
    Next

    2015年11月18日 上午 02:50