encontré esto después de que vi tu pregunta, así que pensé que iba a compartir: SplitContainer FAQ
El segundo enlace en no dice exactamente Qué necesitas hacer.
Aquí está el texto de eso en caso de que el enlace muera alguna vez.
//1. Use the custom control defined in the SplitContainerNoFocus sample
//2. Insert the following code in your project, and attach these events to all of the SplitContainers that you don't want stealing focus.
// Temp variable to store a previously focused control
private Control focused = null;
private void splitContainer_MouseDown(object sender, MouseEventArgs e)
{
// Get the focused control before the splitter is focused
focused = getFocused(this.Controls);
}
private Control getFocused(Control.ControlCollection controls)
{
foreach (Control c in controls)
{
if (c.Focused)
{
// Return the focused control
return c;
}
else if (c.ContainsFocus)
{
// If the focus is contained inside a control's children
// return the child
return getFocused(c.Controls);
}
}
// No control on the form has focus
return null;
}
private void splitContainer_MouseUp(object sender, MouseEventArgs e)
{
// If a previous control had focus
if (focused != null)
{
// Return focus and clear the temp variable for
// garbage collection
focused.Focus();
focused = null;
}
}
Bueno, yo estoy dando a este un intento, sin embargo, con el evento MouseMove del control, el evento será dejar de disparar si el ratón se mueve demasiado rápido y pasa por uno de los paneles. ¿Hay alguna manera de hacer que los eventos de movimiento del mouse pasen al control o que el control capte todos los eventos de movimiento del mouse? – Telanor
No importa, acabo de conectar los eventos MouseMove de todos los controles a la misma función. Funcionó bien – Telanor
Debería haber explicado que, además de manejar los eventos del mouse, también quieres un bool o algo para almacenar si el botón del mouse está actualmente inactivo o no (como en la respuesta de Hans). Si hace clic y mantiene presionado el botón del mouse en un control, generará un evento MouseDown en ese control. Si mantiene presionado el botón del mouse y arrastra hacia la izquierda o hacia la derecha (o hacia arriba o hacia abajo, para el caso), los eventos de MouseMove serán generados por el control que hizo clic, incluso si el cursor del mouse desactivó el control original y la forma parental – MusiGenesis