2012-09-13 106 views
1

我想寫MS Windows計算器的一個副本 - 只是爲了鍛鍊我在我做的過程中所獲得的知識 - 我有問題寫退格鍵,但我不知道關於如何刪除TxtResult.Text(文本框)上的最後一個字符。那麼,有人可以教我怎麼做嗎?如何從文本框中刪除最後一個字符?

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 

namespace ZigndSuperCalc 
{ 
    public partial class FrmZigndSC : Form 
    { 
     Int64 aux, result; 
     Int16 cont = 0; 
     bool sucess; 
     public FrmZigndSC() 
     { 
      InitializeComponent(); 
     } 

     private void BtnSoma_Click(object sender, EventArgs e) 
     { 
      sucess = Int64.TryParse(TxtInput.Text, out aux); 
      result += aux; 
      TxtInput.Text = Convert.ToString(result); 
      TxtInput.Focus(); 
     } 

     private void BtnCE_Click(object sender, EventArgs e) 
     { 
      TxtInput.Text = "0"; 
     } 

     private void BtnC_Click(object sender, EventArgs e) 
     { 
      result = 0; 
      TxtInput.Text = "0"; 
     } 

     private void BtnBackspace_Click(object sender, EventArgs e) 
     { 
      // write here a method to delete the last character from 
     } 
    } 
} 
+5

你需要顯示到目前爲止你寫的代碼。 – Yuck

+0

我剛添加它^^ – Zignd

+0

在我的情況下,基於子串的實現是不可取的,因爲它們在快速連續執行時會導致閃爍。 –

回答

9

如果我們模仿calc.exe,正是那麼它可能是這樣的:

string s = TxtResult.Text; 

if (s.Length > 1) { 
    s = s.Substring(0, s.Length - 1); 
} else { 
    s = "0"; 
} 

TxtResult.Text = s; 

編輯:按照要求,Substring方法,我在這裏使用提取物一部分字符串並將其分配給文本框的Text屬性。請參閱:http://msdn.microsoft.com/en-us/library/aka44szs.aspx

+0

+1錯誤檢查 –

+0

@rein請問您可以在您的回答中添加關於Subtring的解釋嗎? – Zignd

+0

+1文件! – Ryan

4

嘗試

TxtResult.Text = TxtResult.Text.Substring(0, TxtResult.Text.Length - 1);` 
+0

智能手機...無法格式化 –

+1

並避免「嗯」等評論。只是回答這個問題。 :-) –

+0

對不起,請記住。謝謝。大聲笑迷你技術。對不起 –

3
if (textBox1.TextLength > 0) 
{ 
    textBox1.Text = textBox1.Text.Substring(0, (textBox1.TextLength - 1)); 
} 
else 
{ 
    MessageBox.Show("No Number."); 
} 
0
 


//CLICK ON BUTTON1 

private void button1_Click(object sender, EventArgs e) 
     { 
      if (textBox1.Text.Length > 1) 
      { 
       textBox1.Text = textBox1.Text.Substring(0, textBox1.Text.Length - 1); 
      }![enter image description here][1] 
      else 
      { 
       textBox1.Text = "0"; 
      } 
     } 
 
1

我用這個方法:

private void button_Click(object sender, EventArgs e) 
{ 
    if (textbox.Text.Length > 0) 
    { 
     textbox.Text = textbox.Text.Remove(textbox.Text.Length - 1); 
    } 
} 
相關問題