Latte 發問時間: 電腦與網際網路程式設計 · 1 0 年前

Visual Basic.net中的listbox的問題

在Form中有一個listbox1,listbox1中已利用字串編輯器將5組數字

輸入進listbox1,題目的要求是按buttom1在listbox1的一組數字(任一組)可以向上移動,按buttom2在 listbox1的任一組數字(任一組)可以向下移動;數字的移動均需在listbox1進行

以上是題目,請各位VB大大幫我想想,感謝感謝

2 個解答

評分
  • 1 0 年前
    最佳解答

    有很困難嗎?

    設定兩個字串變數 a , b

    設定兩個數字變數 i , j

    用 j 來記錄在listbox1裡面共有幾筆資料

    然後判斷 listbox1.selectedindex 是否小於0,若是,則代表 listbox尚未被點選。這時用 randomize 來取亂數,把亂數控制在 0 ~ 總數-1的範圍內 ,用i 來記錄 listbox1.selectedindex

    若不是小於 0 ,則表示內容已被選取。直接採用其選項移動即可。

    接下來,button1 裡面要注意的是... 如果 i = 0 表示已經移動到最上面,故無法繼續移動

    若 i > 0 則表示可以繼續移動,這時就用到最先的兩個字串變數

    a = listbox1.item(i)

    b = listbox1.item(i-1)

    listbox1.item(i-1) =a

    listbox1.item(i) = b

    接著就把listbox.selectedindex指向前一個index值,這樣你的按鍵才會一直控制那筆資料。

    往下,其實也和往上沒差多少,故,就不寫出來了。

    Dim a As String, b As String

    jj = ListBox1.Items.Count - 1

    If ListBox1.SelectedIndex < 0 Then

    Randomize()

    ii = (jj - 0) * Rnd() + 0

    ListBox1.SelectedIndex = ii

    Else

    ii = ListBox1.SelectedIndex

    End If

    If ii = 0 Then

    MsgBox("can not move up")

    Else

    a = ListBox1.Items(ii)

    b = ListBox1.Items(ii - 1)

    ListBox1.Items(ii - 1) = a

    ListBox1.Items(ii) = b

    ListBox1.SelectedIndex = ii - 1

    End If

  • 1 0 年前

    這是補充 kukka大大的回答

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    Dim a As String, b As String

    Dim ii = ListBox1.SelectedIndex

    Dim jj = ListBox1.Items.Count - 1

    If ListBox1.SelectedIndex < 0 Then

    Randomize()

    ii = (jj - 0) * Rnd() + 0

    ListBox1.SelectedIndex = ii

    Else

    ii = ListBox1.SelectedIndex

    End If

    If ii = 0 Then

    MsgBox("can not move up")

    Else

    a = ListBox1.Items(ii)

    b = ListBox1.Items(ii - 1)

    ListBox1.Items(ii - 1) = a

    ListBox1.Items(ii) = b

    ListBox1.SelectedIndex = ii - 1

    End If

    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

    Dim a As String, b As String

    Dim ii = ListBox1.SelectedIndex

    Dim jj = ListBox1.Items.Count + 1

    If ListBox1.SelectedIndex < 0 Then

    Randomize()

    ii = (jj - 0) * Rnd() + 0

    ListBox1.SelectedIndex = ii

    Else

    ii = ListBox1.SelectedIndex

    End If

    If ii = 4 Then

    MsgBox("can not move up")

    Else

    a = ListBox1.Items(ii)

    b = ListBox1.Items(ii + 1)

    ListBox1.Items(ii + 1) = a

    ListBox1.Items(ii) = b

    ListBox1.SelectedIndex = ii + 1

    End If

    End Sub

    End Class

還有問題?馬上發問,尋求解答。