2016-02-28 49 views
1

這裏是我的代碼,它的工作原理。C# - 數組 - 輸入名稱並顯示它們

除了打顯示名稱按鈕(輸入姓名後)存儲在陣列後,顯示文本框的滾動條跳了下來,並要拉起來看看輸入的名稱。

2.此外,繼續輸入名稱後(輸入很少)後,我得到換行符(在顯示名稱文本框中)和輸入名稱重複顯示。它應該在最後輸入的名字後面顯示名稱,而不必重複先前輸入的名稱和換行符。

任何想法是什麼造成的?

我的代碼:

namespace Arrays 
{ 
public partial class frmMain : Form 
{ 


    public frmMain() 
    { 
     InitializeComponent(); 
    } 


    //initialize the Array 
    string[] names = new string[100]; 

    int index = 0; 


    //Enter Names up to 100 and store them in array 
    private void btnEnterName_Click(object sender, EventArgs e) 
    { 
     if (index < names.Length) 
     { 
      names[index++] += txtName.Text; 
      txtName.Clear(); 
     } 
     else 
     { 
      // array 'full' 
     } 
    } 

    //Display stored Names in Array using foreach loop in multiline textbox 
    private void btnShowNames_Click(object sender, EventArgs e) 
    { 
     txtName.Clear(); 
     foreach (string item in names) 
     { 
      txtNames.AppendText(item + Environment.NewLine); 
     } 
    } 

} 
} 
+0

代碼在哪裏? –

+0

'這是我的代碼。 - 在哪裏? –

+0

對不起,剛添加它 – Prince

回答

0

對於滾動條問題,設置文本的而不是使用AppendText通過將解決這個問題的:

//Display stored Names in Array using foreach loop in multiline textbox 
private void btnShowNames_Click(object sender, EventArgs e) 
{ 
    string allNames = ""; 
    foreach (string item in names) 
    { 
     allNames += item + Environment.NewLine; 
    } 
    txtNames.Text = allNames; 

    // or more advanced 
    //txtNames.Text = string.Join(names, Environment.NewLine); 
} 

換行,如果你按下按鈕,而無需輸入應該發生名字在裏面。在添加文本之前測試文本的存在:

//Enter Names up to 100 and store them in array 
private void btnEnterName_Click(object sender, EventArgs e) 
{ 
    // remove spaces at start and end 
    string trimedName = txtName.Trim(); 
    bool nameExist = !string.IsNullOrEmpty(trimedName); 
    bool notHittingMaxName = index < names.Length; 
    if (nameExist && notHittingMaxName) 
    { 
     names[index++] += trimedName; 
     txtName.Clear(); 
    } 
    else 
    { 
     // array 'full' or empty name 
    } 
} 
+0

謝謝。工作很棒。 – Prince

+0

我該如何添加try/catch到代碼? – Prince

+0

爲什麼和你需要一個try/catch? –

相關問題