2017-04-24 111 views
-1

我想知道如何使用箭頭鍵實現一個瀏覽字符串列表的系統?到目前爲止,我有一個填充列表,其中添加了一些測試字符串,如foo,goo,hoo,現在我想要一個文本框,可以使用上下箭頭鍵瀏覽它們。閱讀C#中的字符串列表?

這裏有點我的代碼有:

List<String> reload; 

private void inputBox_KeyDown(object sender, KeyEventArgs e){ 
     int x = 0; 
     reload.item(x);//this is my bogus guess on how it should be done 
      try{ 
       if (e.KeyCode == Keys.Enter){ 
        itemHandler(); 
        inputBox.Clear(); 
       } 

       if (e.KeyCode == Keys.Up){ 
        inputBox.Text = reload().item(x+1); //again bogus 
        x++; 
       } 

       if (e.KeyCode == Keys.Down)(
        inputBox.Text = reload().item(x-1); //again bogus 
        x--; 
       } 

       else {} 
      } 

      catch(Exception ex) 
      { 
       rtbDisplay.AppendText("Error:" + ex); 
      } 
     } 
+0

不能使用下拉菜單或ComboBox這個? – Simsons

+0

我可以做我喜歡的任何事情,但我想學習如何使用列表,因爲我之前從未使用過它們...... –

+0

'reload'是一個壞對象名稱 –

回答

1

x應外的方法來定義,因爲你不希望它是每一個方法被調用時重新初始化爲0做索引。

如果您不熟悉列表,我建議您先閱讀MSDN

基本上,你幾乎得到它:

int x = 0; 
private void inputBox_KeyDown(object sender, KeyEventArgs e){ 
    try{ 
     if (e.KeyCode == Keys.Enter){ 
      itemHandler(); 
      inputBox.Clear(); 
     } 

     if (e.KeyCode == Keys.Up){ 
      inputBox.Text = reload[x + 1]; 
      x++; 
     } 

     if (e.KeyCode == Keys.Down)(
      inputBox.Text = reload[x - 1]; 
      x--; 
     } 

     else {} 
    } 

     catch(Exception ex) 
     { 
      rtbDisplay.Text = "Error:" + ex.ToString(); 
     } 
    } 
1

首先你需要方法的外部聲明索引變量,否則會,每次從0開始。第二列表可以使用[ ]操作

int index = 0; 

private void inputBox_KeyDown(object sender, KeyEventArgs e) 
{ 


    if (e.KeyCode == Keys.Enter){ 
     itemHandler(); 
     inputBox.Clear(); 
    } 

    // you should check here whether your index is between 0 and reload.Count-1 
    if (reload.Count > 0 && index > 1 && index < reload.Count -1){ 

     if (e.KeyCode == Keys.Up){ 
      x++; 
     } 

     if (e.KeyCode == Keys.Down)(
      x--; 
     } 

     inputBox.Text = reload[index]; 

    }  
}