2014-09-24 62 views
0

我有一個窗體上的下拉控件。此下拉菜單的結果需要寫入隱藏文本框,但是當它們寫入文本框時,它需要採用格式「XX.XX」。因此,如果用戶選擇「1.0」,則需要將其作爲「01.00」寫入文本框。在C中的文本框中格式化數據#

我是一名本地Access/VBA程序員,在VBA中執行起來相當簡單。我將如何在C#代碼隱藏中做到這一點?

我現在擁有的是:

protected void ddlCIT_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     txtCIT.Text = ddlCIT.SelectedValue; 
    } 

這之前,我知道這個要求,因此它不會在所有解決格式問題。我相信它應該是這樣的:

txtCIT.Text = Format(ddlCIT.SelectedValue, "##.##"); 

什麼的,但我只是無法弄清楚。我發現的例子都沒有做任何接近我需要的事情。

編輯

按asven的回答,我現在已經得到了下面的代碼:

string ddlCITVal = ddlCIT.SelectedValue.ToString(); 
txtCIT.Text = string.Format("{0:#0.0#}", ddlCITVal); 
string blearg = string.Format("{0:0.0#}", ddlCITVal); 

我的兩個文本框和我的字符串「blearg」中顯示的「2.0」的結果從下拉列表中選擇「2.0」時的即時窗口。我也嘗試在格式子句中使用「{0:00.00}」,結果相同。

我正在使用VS2012。

+1

你正在尋找string.Format – 2014-09-24 18:01:27

+0

你能告訴我,鑑於上述信息,實際的代碼行是什麼?我真的還是一個C#新手。 – 2014-09-24 18:03:13

回答

2

嘗試

string.Format("{0:00.00}", ddlCIT.SelectedValue); 
+1

你周圍'{0:00.00}''缺少的引號'。 – norlando 2014-09-24 18:06:04

+0

你是對的,謝謝。 – asven 2014-09-24 18:15:23

+0

這不起作用。你認爲我必須將ddlCIT.SelectedValue轉換爲字符串或其他?現在文本框仍然與下拉菜單中的內容相同。 – 2014-09-24 18:20:09

0

你可以走一步,並使用自定義文本框。這可以讓你有驗證和格式化內置:

public class NumDoubTextbox : TextBox 
{ 
    public override string Text 
    { 
     get 
     { 
      return base.Text; 
     } 
     set 
     { 
      double temp = 0; 
      if (double.TryParse(value, out temp)) 
       //Formatting as a float then padding left with 0's should give the format you want 
       base.Text = temp.ToString("F2").PadLeft(5,'0'); 
      else 
       //Handle invalid input here. 
       base.Text = "--.--"; 
     } 
    } 
} 

你可以把它放進一個單獨的項目並編譯它,並將它列入工具箱,以便它可以在設計時使用。