如何编写代码 对于多个文本框,仅离开事件一次

本文关键字:事件 离开 一次 代码 何编写 于多个 文本 | 更新日期: 2023-09-27 18:32:15

我在文本框Leave event上使用此代码来first Letter文本框以uppercase,在表单上我有特定的文本框,我想完成相同的功能,但是有什么方法让我不需要在每个文本框离开事件中编写相同的代码,我该怎么做

private void txtAdrs2A_Leave(object sender, EventArgs e)
{
    if (txtAdrs2A.Text.Length >= 1)
        txtAdrs2A.Text = txtAdrs2A.Text.Substring(0, 1).ToUpper() + txtAdrs2A.Text.Substring(1);
}

如何编写代码 对于多个文本框,仅离开事件一次

使用sender参数,而不是通过其Id指定TextBox

private void TextBox_Leave(object sender, EventArgs e)
{
    var box = sender as TextBox;
    if(box != null && box.Text.Length > 0)
        box.Text = box.Text.Substring(0, 1).ToUpper() + box.Text.Substring(1);
}

使用 sender

    private void text_Leave(object sender, EventArgs e)
    {
        TextBox text = (TextBox)sender;
        if (text.Text.Length >= 1)
        {
            text.Text = text.Text.Substring(0, 1).ToUpper() + text.Text.Substring(1
        }
    }

然后遍历所有文本框以将事件分配给它们

    foreach (TextBox t in this.Controls.OfType<TextBox>())
    {
        t.Leave += new EventHandler(text_Leave);
    }