2012-06-01 102 views
3

增值數在我的計劃,我有幾個texboxes和按鈕coresponding名稱(例如TextBox1中 - buttonPlus1)像圖片上的C#的WinForm在texbox

enter image description here

但都充滿了加載數來自文本文件。 我想寫的功能,允許我按下按鈕+並從文本框中放大(例如添加固定數字,例如100)值。到目前爲止,我已經完成:

private void buttonPlus1_Click(object sender, EventArgs e) 
    { 
     AddValue(sender,e); 
    } 

    private void AddValue(object sender, EventArgs e) 
    { 
     if (!(sender is Button)) 
      return; 

     string controlName = (sender as Button).Name; 
     string textBoxName = controlName.Replace("buttonPlus", "textBox"); 

     TextBox textBox = this.Controls.Find(textBoxName, false)[0] as TextBox; 
     int step = 100; 



    } 

但我不知道如何從文本框中獲取值(作爲數字)並添加該步驟。有人能幫幫我嗎?我試圖通過自己在許多不同的方式來解決它,但它不工作

+0

您可以在按鈕的'.Tag'屬性中添加對相應文本框的引用。然後你的代碼將賦值爲'(sender.Tag作爲TextBox).Value = ...' – ja72

回答

3

獲得的價值:

Convert.ToInt32(textBox.Text) 

保存到一個變量中添加100和設置它像往常一樣。

P.S.您還可以使用Int32.Parse("")

textBox.Text = Convert.ToInt32(textBox.Text) + 100; 

(您可能需要.ToString()吧)

編輯: 作爲ltiong_sh提到的,你應該使用的TryParse而不是解析:

int somevalue; 
if(Int32.TryParse(textBox.Text, out somevalue)) 
{ 
    textBox.Text = somevalue + 100; 
} 
+0

好吧,但如何將其發送迴文本框? – Juss

+0

textBox.Text ='value'。 我編輯了我的答案。 – MasterMastic

+1

可能應該使用Int32.TryParse() –

0

這是你在找什麼:

int newValue = Convert.ToInt32(textBox.Text) + step; 

則將值回一個文本框,你可以做到以下幾點:

textBox.Text = newValue.ToString(); 

編輯:

正如其他人所說,你應該使用Int32.TryParse來防止錯誤被拋出。

if(Int32.TryParse(textBox.Text, out newValue)) 
{ 
    newValue += step; 
    textBox.Text = newValue.ToString(); 
} 
0

您需要將字符串轉換爲整數

int txtValue = Convert.ToInt32(textBox.Text) + 100; 
0

確保您驗證文本字段中的文本。否則在解析時會拋出異常。

你可以做到這一點

int value = 0; 
if(Int32.TryParse(textBox.Text, out value)) 
{ 
    value += step; 
    textBox.Text = value.ToString(); 
} 
else 
{ 
    //inform user to enter int 
} 
0
按鈕

點擊獲取文本框的值,並將其轉換爲整數格式,並添加100到它。之後,重置文本框的值來修改一個。這是你需要的。

private void buttonPlus1_Click(object sender, EventArgs e) 
{ 
    try 
    { 
     int txtValue = Convert.ToInt32(textBox.Text) + 100; 
     textBox.Text = txtValue.ToString(); 
    } 
    catch(Exception ex) 
    { 
    MessageBox.Show(ex.Message.ToString()); 
    } 
}