2013-04-12 51 views
1

我知道如何用C++創建程序,但對C#來說很新,所以要耐心等待,但我有一個問題,並且對於我的生活在google上找不到它,或者stackoverflow搜索(可能不知道一個好的方式來描述它)。我的表單上有兩個功能:A NumericUpDownButton。點擊按鈕時,我想從NumericUpDown.Show()中獲取它在消息框中的數據。這是我現在擁有的。使用Show()顯示來自另一個類的數據

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void StatBox_ValueChanged(object sender, EventArgs e) 
    { 
     //decimal Stat = StatBox.Value; 
     //string StatStr = Stat.ToString(); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     MessageBox.Show(StatBox.Value); 
    } 
} 
+2

'MessageBox.Show(StatBox.Value.ToString());' - 是你需要什麼。 – Brian

+0

非常感謝你的幫助。現在要弄清楚如何關閉這個問題:) –

+0

非常歡迎您!爲了「關閉」問題,只需接受你得到的兩個答案中的一個。 – Brian

回答

2

與C++類似,C#是一種強類型語言。這意味着如果您嘗試將int傳遞給接受string的函數(或反之亦然),則會發生編譯時錯誤。這就是你在這裏發生的事情。

The simplest overload of the MessageBox.Show function接受一個string參數,但你已經通過它decimal(的StatBox.Value結果):

MessageBox.Show(StatBox.Value); 

修復的方法是簡單的:轉換decimalstring。所有.NET對象都提供了一個ToString成員函數,該函數可用於獲取對象的字符串表示形式。因此重寫代碼如下所示:

MessageBox.Show(StatBox.Value.ToString()); 

你甚至可以得到看中並調用這個函數的時候連接一個號子串在一起,就像你可以用C++ string型和I/O流。例如,你可能會這樣寫代碼:

MessageBox.Show("The result is: " + StatBox.Value.ToString()); 

或使用String.Format method,這有點類似於C printf功能。然後,您可以指定standardcustom數字格式,並避免顯式調用ToString函數。例如,下面的代碼將顯示與正好兩個小數位在定點表示法的上下控制數:

MessageBox.Show(String.Format("The result is: {0:F2}", StatBox.Value.ToString())); 
1

這應該爲你做它:

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void StatBox_ValueChanged(object sender, EventArgs e) 
    { 
     //decimal Stat = StatBox.Value; 
     //string StatStr = Stat.ToString(); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     MessageBox.Show(StatBox.Value.ToString()); 
    } 
} 

由於您使用的是MessageBox.Show()數據,你會想呼籲StatBox.Value.ToString()方法。

PS - 歡迎來到SO!你會喜歡它。

相關問題