当货币失去焦点时,c#格式文本框



我在每个代表数据库列的表单上有几个文本框列表。我想每次用户以价格退出一个框时更新表格。此列表的名称是PriceBox []。我知道丢失的事件,但我似乎无法找到一种使其用于收藏的方法,并且此列表可以增长,因此我不能有一个固定的数字。我还没有任何代码。如果有助于文本框控件包含在名为面板1的面板中。

我尝试搜索,但在此上找不到任何东西。仅适用于单数实例,例如更新1个文本框。

对不起,如果这是重复的,但是我确实尝试了搜索。我也是C#的新手。

谢谢。

一种方法是在面板中添加一个控制添加的处理程序,因此每次添加新的文本框时,它都会自动为其添加LostFocus处理程序。逐步以下:

对于您的面板,您绑定了一个处理程序控制的事件,这将是:

private void Panel1_ControlAdded(object sender, ControlEventArgs e)
{
    var tb = e.Control as TextBox;
    if (tb != null)
    {
        tb.LostFocus += new EventHandler(TextBox_LostFocus);
    }
}

然后在textbox_lostfocus中您可以添加想要的任何逻辑

void TextBox_LostFocus(object sender, EventArgs e)
{
    var tb = sender as TextBox;
    if (tb != null)
    {
        // modify tb.Text here, possibly like this...
        tb.Text = String.Format("{0:C}", Decimal.Parse(tb.Text));
    }
}

更新所有现有控件(未测试)

foreach (TextBox in panel1.Controls)
{
    tb.LostFocus += new EventHandler(TextBox_LostFocus);
}

最新更新