C# 输入时自动突出显示winform中所有textbox控件中的文本(获得焦点)

C# 输入时自动突出显示winform中所有textbox控件中的文本(获得焦点),c#,winforms,C#,Winforms,虽然我知道这会奏效 textbox.SelectionStart=0; textbox.SelectionLength=textbox.Text.Length 我不想把这个代码放在每个文本框中,请输入我文本框的事件。有没有办法让我所有的文本框都在一个表单中。它将始终自动突出显示?创建一个“常规”文本框,输入事件实现,并将其用于所有文本框。将sender参数转换为文本框,然后施展您的魔法 private void textBox_Enter(object sender, System.EventA

虽然我知道这会奏效

textbox.SelectionStart=0;
textbox.SelectionLength=textbox.Text.Length

我不想把这个代码放在每个文本框中,请输入我文本框的事件。有没有办法让我所有的文本框都在一个表单中。它将始终自动突出显示?

创建一个“常规”文本框,输入事件实现,并将其用于所有文本框。将sender参数转换为文本框,然后施展您的魔法

private void textBox_Enter(object sender, System.EventArgs e)
{
    if (sender is TextBox textbox)
    {
        textbox.SelectionStart = 0;
        textbox.SelectionLength = textbox.Text.Length;
    }
}

通过从控件基类派生自己的类来自定义控件是Winforms中的一项重要技术。构建项目后,您将在工具箱顶部找到新控件。非常感谢。顺便说一句,我更新了它,并将边框样式设置为“无”。现在,我如何绘制另一条边界,但这次,只在底部绘制一条边界。如何做到这一点?试图覆盖油漆,但它没有做任何事情。尝试创建一个只在底部有边框的平面样式文本框。文本框不支持自定义绘制,也不会留下足够的空间来绘制任何额外的内容。你可以通过让父母画边界来假装。哦,好的。谢谢我猜我必须在设计时手动绘制边框。无论如何,非常感谢。你帮了大忙。希望你能把你的推荐贴在答案上,这样我就可以标记它了。是的,但那个门槛要求我在每个文本框中都这样做。我想做的是只做一次,并在表单中的所有文本框上工作。