C# SelectAll()在C 2015中的鼠标单击和输入事件之间的行为不同

C# SelectAll()在C 2015中的鼠标单击和输入事件之间的行为不同,c#,enter,mouseclick-event,selectall,C#,Enter,Mouseclick Event,Selectall,我试图在每个控件进入时突出显示文本。当我使用MouseClick事件时,它工作正常。但是当使用Enter事件时,它不起作用。我需要使用Enter事件而不是MouseClick事件,因为我想突出显示文本,无论每个控件如何获得焦点。我可以调试Enter事件,并且可以看到它正在处理中。但由于某些原因,SelectAll根本没有被处理。为什么会有不同的行为 // This works private void ClientEdit_MouseClick(object sender, MouseEvent

我试图在每个控件进入时突出显示文本。当我使用MouseClick事件时,它工作正常。但是当使用Enter事件时,它不起作用。我需要使用Enter事件而不是MouseClick事件,因为我想突出显示文本,无论每个控件如何获得焦点。我可以调试Enter事件,并且可以看到它正在处理中。但由于某些原因,SelectAll根本没有被处理。为什么会有不同的行为

// This works
private void ClientEdit_MouseClick(object sender, MouseEventArgs e)
{
    Control c = sender as Control;
    if (c is TextBox) (sender as TextBox).SelectAll();
    else if (c is MaskedTextBox) (sender as MaskedTextBox).SelectAll();
}

// This does not work
private void ClientEdit_Enter(object sender, EventArgs e)
{
    Control c = sender as Control;
    if (c is TextBox) (sender as TextBox).SelectAll();
    else if (c is MaskedTextBox) (sender as MaskedTextBox).SelectAll();
}

我在大约2年前发现了@Jack Fairfield的一篇帖子,如下所示,它很有效

private void maskedTextBox1_Enter(object sender, EventArgs e)
{
    BeginInvoke((Action) delegate { SetMaskedTextBoxSelectAll((MaskedTextBox) sender); });
}

private void SetMaskedTextBoxSelectAll(MaskedTextBox txtbox)
{
    txtbox.SelectAll();
}
我刚开始在这里工作,没有足够的声誉来表扬他。谢谢