c# .net winforms controls splitcontainer

c# - Eliminando lo feo del marcador de selección de Windows de Splitter en SpitContainer Control



.net winforms (7)

Creo que con "Selection Marker Crap", te refieres a la línea borrosa que indica que el control está seleccionado. Si no desea que aparezca, configure algún otro control para que se seleccione al inicio. Algo como:

Textbox1.Selected = true;

Esto debería resolver su problema si solo uno de ellos no está siendo seleccionado. Sin embargo, esto volverá si selecciona el elemento para cambiar el tamaño de algo. En ese caso, podría poner algo en el evento mouse_up para mover la selección fuera del control. De esa manera, el usuario mueve la barra divisora ​​y luego, cuando la sueltan, la selección se borra del divisor.

Otra forma sería hacer que la barra divisora ​​sea lo suficientemente estrecha como para que la línea borrosa gris no aparezca. Para hacer esto, puedes hacer lo siguiente (probado):

splitContainer1.BorderStyle = BorderStyle.FixedSingle; splitContainer1.SplitterWidth = 1;

Tengo un control SplitContainer , y el Splitter en el medio es muy feo. Al configurar el BackColor del SplitContainer en (insertar color aquí), luego configurar el BackColor de Panel1 y Panel2 en blanco, puedo hacer que mi divisor se Panel2 bien. Pero de forma predeterminada, Windows coloca la marca de selección sobre el Splitter, incluso antes de que se seleccione.

¿Cómo puedo asegurarme de que la marca de selección nunca aparezca en el Splitter ?


Este código moverá el enfoque del splitContainer a TreeView poco después de ser movido.

private void splitContainer1_SplitterMoved(object sender, SplitterEventArgs e) { if(this.splitContainer1.CanFocus) { this.splitContainer1.ActiveControl = this.treeView1; } }


Experimenté el mismo problema y lo TabStop estableciendo TabStop en False en la ventana Propiedades para SplitContainer1 .

Esto podría molestar a las personas que dependen o insisten en usar el teclado para operar todos los aspectos de su formulario, pero aparte de eso funcionará. Los controles dentro del SplitContainer seguirán siendo tabulables, pero no el mismo SplitContainer.


He intentado mucho para quitar el divisor pero nada funciona. Hice algo diferente por qué necesitamos usar el divisor para que podamos usar el control de cuadro de imagen para que el ancho (o) la altura dependa de su conjunto de proyectos 5 o 3 ... propiedad-cursor cambia el tipo de cursor Hsplit su aspecto como divisor

private void picturebox1_MouseMove(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left)//this for mouse left click its work { //write you code here if you use panel set panel height or width it reaches... Cursor.Position = new Point(e.X, e.Y); // this for mouse cursor position according your //project do some fine tune you will get its work... }

su trabajo porque intenté mucho para esto y encontré este método ...


La solución más sencilla que encontré / hice: crear un botón, seleccionarlo y ocultarlo. Todo a través del código. no hay efectos secundarios o problemas con esto, colóquelo en el evento de carga de formularios.

Button DeSelectButton = new Button(); this.Controls.Add(DeSelectButton); DeSelectButton.Select(); DeSelectButton.Visible = false;


Podría agregar un controlador de eventos para robar el foco del contenedor en MouseUp''s ... Es un poco desordenado pero funciona. :)


Puse el TabStop en falso y se fue.