2014-01-28 41 views
-1

請幫我在這種情況下如何獲得價值浮動從組合框在C#

float sumofgradeintocradit = float.Parse(comboBox1.Text); 

但捕獲的異常說「輸入字符串的不正確的格式。」

有什麼問題,請給我一些解決方案,我想借此從組合框和存儲作爲一個浮動的值。

+1

您可以發佈組合框的內容/ HTML,因爲它聽起來像.Text不包含有效的浮動。 – Mark

+2

注意,'sumofgradeintocradit'應該是'sumofgradeintocredit''? – Shiva

+2

您可以使用'float.TryParse()'來查看組合框文本是否爲有效的浮點值 – davidsbro

回答

0

comboBox1.Text不包含正確的格式的海軍報。

爲了調試打印/跟蹤的價值進行確認。

您可以添加客戶端驗證,以確保它是正確的格式。

後,如果它是一個客戶端服務器應用程序,你可以添加一個服務器端驗證來處理下面的MSDN提到的例外情況,並通過嘗試解析或嘗試捕獲重新提示用戶輸入。 http://msdn.microsoft.com/en-us/library/2thct5cb(v=vs.110).aspx

參考: 也可參閱解析數字字符串以下 http://msdn.microsoft.com/en-us/library/xbtzcc4w(v=vs.110).aspx

0

如果我是你,我會試試這個:

float sumofgradeintocradit ; 
float.TryParse(comboBox1.Text, out sumofgradeintocradit); 

此檢查,看是否combobox1.text是有效的浮點數,如果是,則分配值爲sumofgradeintocradit

HTH

+0

謝謝,但它只是說它是真的或假的,它顯示0,但我在組合框中選擇1或2。 –

+0

剛纔說的是真是假?你也確定你有'out sumofgradeintocradit'作爲第二個參數嗎? – davidsbro

1

,而不是試圖顯示文本轉換回浮動, 您可以使用自定義的對象,這使得控股值從展示的文字分開。

例子:

private class ComboItem 
{ 
    public string ItemText { get; set; } 
    public float ItemFloat { get; set; } 

    public ComboItem(string itemText, float itemFloat) 
    { 
     this.ItemText = itemText; 
     this.ItemFloat = itemFloat; 
    } 

    public override string ToString() 
    { 
     return this.ItemText; 
    } 
} 

private void AddItemsToComboBox 
{ 
    comboBox1.Items.Add(new ComboItem("One Point Two", 1.2f)); 
    comboBox1.Items.Add(new ComboItem("Three Point Four", 3.4f)); 
} 

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    var selectedFloat = ((ComboItem)comboBox1.SelectedItem).ItemFloat; 
    Debug.Print("Selected: " + selectedFloat); 
} 

這也適用於其他像ListView中。