S.O.S. ScrollBars "Como los odio..."

31/05/2004 - 00:57 por Jack | Informe spam
Buenas, expongo mi problema.
Quisiera saber si es posible y cual es el mejor método
para cambiar el color y apariencia de los scrollbars
vertical y horizontal de un datagrid. He desarrollado un
programa para cambiar el diseño de los datagrids, colores
de filas, columnas, estilo de cabeceras, etc. pero aun no
he podido cambiar el aspecto de los scrollbars. Lo he
intentado accediendo a las propiedades protegidas
VertScrollBar y HorizScrollBar mediante un DataGrid
heredado y no hay manera. Tampoco lo he conseguido
mediante la opción BackColor del Control Scroll, en fin
llevo un par de semanas pillado y ya no se por donde
salir, sin recurrir a otro lenguaje.
Se me olvidaba utilizo C# y el control DataGrid es en
formularios Windows no Web, ya se que en estos últimos
parece bastante fácil conseguirlo.

Gracias y espero que alguien me pueda echar una mano,
este problema es bastante importante y de no resolverlo
tendría que replantear todo el desarrollo y si el
lenguaje es el idóneo para mis necesidades.

Preguntas similare

Leer las respuestas

#1 Anonimo
31/05/2004 - 16:03 | Informe spam
Cómo cambias el diseño de datagrid ? tienes código de
ejemplo ? Aportación sería útil.


Buenas, expongo mi problema.
Quisiera saber si es posible y cual es el mejor método
para cambiar el color y apariencia de los scrollbars
vertical y horizontal de un datagrid. He desarrollado un
programa para cambiar el diseño de los datagrids,


colores
de filas, columnas, estilo de cabeceras, etc. pero aun


no
he podido cambiar el aspecto de los scrollbars. Lo he
intentado accediendo a las propiedades protegidas
VertScrollBar y HorizScrollBar mediante un DataGrid
heredado y no hay manera. Tampoco lo he conseguido
mediante la opción BackColor del Control Scroll, en fin
llevo un par de semanas pillado y ya no se por donde
salir, sin recurrir a otro lenguaje.
Se me olvidaba utilizo C# y el control DataGrid es en
formularios Windows no Web, ya se que en estos últimos
parece bastante fácil conseguirlo.

Gracias y espero que alguien me pueda echar una mano,
este problema es bastante importante y de no resolverlo
tendría que replantear todo el desarrollo y si el
lenguaje es el idóneo para mis necesidades.

.

Respuesta Responder a este mensaje
#2 Jack
31/05/2004 - 17:16 | Informe spam
Tendré en cuenta tu solicitud, pero si no te importa
ahora estamos en otro tema.
Hay alguien en este Grupo que haya sido capaz de cambiar
el color y/o aspecto de un ScrollBar, en C# y WinForm.
Claro está, en la practica ya que en la teoria deberia de
funcionar varios de los sistemas que hasta ahora he
probado y para nada, por ejemplo:

foreach(Control c in DataGrid1.Controls)
{
if (c is VScrollBar)
{
c.BackColor = Color.Red;
}
}

Este fragmento de código es correcto ?
Deberia funcionar ?

ENTONCES POR QUE ... NO FUNCIONA
Respuesta Responder a este mensaje
#3 Javier Ros
01/06/2004 - 08:59 | Informe spam
Se te ve alterado ;), me he enfrentado al mismo problema que tú muchas
veces,
yo tambien odio los scrollbars, y más que odiarlos a ellos, odio como
Microsoft
los implementa en los controles como DataGrid, TreeView, ListView, ...
Bueno vamos por partes:

1) Estas usando el lenguaje idoneo. Te será mucho más facil en C# que en
cualquier otro.
2) No será tan facil como VScrollBar.BackColor = Color.Red;. Para cambiar
el aspecto
de las barras de desplazamiento te toca dibujarlas tú con el GDI.
3) WM_NCPAINT es la clave. Windows Message Non Client Paint. En respuesta
a este
mensaje deberás dibujar el scrollbar.

Javier Ros Moreno.


"Jack" escribió en el mensaje
news:15b6c01c44722$314a4e70$
Tendré en cuenta tu solicitud, pero si no te importa
ahora estamos en otro tema.
Hay alguien en este Grupo que haya sido capaz de cambiar
el color y/o aspecto de un ScrollBar, en C# y WinForm.
Claro está, en la practica ya que en la teoria deberia de
funcionar varios de los sistemas que hasta ahora he
probado y para nada, por ejemplo:

foreach(Control c in DataGrid1.Controls)
{
if (c is VScrollBar)
{
c.BackColor = Color.Red;
}
}

Este fragmento de código es correcto ?
Deberia funcionar ?

ENTONCES POR QUE ... NO FUNCIONA
Respuesta Responder a este mensaje
#4 Jack
01/06/2004 - 12:37 | Informe spam
Gracias Javier por tu intervención, ya pensaba que era el
único bicho raro de por aquí que tenia este problema y
digo yo, si a un lenguaje de programación para entorno
grafico le quitamos los gráficos que nos queda, pues lo
de siempre un lenguaje más o menos como los de los
últimos 20 años. Bueno me centro.
Me comentas que debería repintar el control en GDI, vale
al fin de al cabo solo es un control mas, ya lo he hecho
con los Label, EditBox, ComboBox, Panel, DateTimePicker,
CheckBox, RadioButton, Button, DataGrid, etc. vamos
todos, pero con este en particular me acechan dudas:
- Para repintar el control debería crear uno propio
e instanciarlo desde su control base H/VScrollBar
- Como puedo utilizar este nuevo control en un
DataGrid y sobre todo darle funcionalidad.

Al parecer los señores de Microsoft solo se lo curran
cuando tiene competencia u otros intereses, casualmente
este problema no es tal en controles Web, que curioso.
Bueno Javier no se si podrías darme alguna pista más, en
el caso de que hayas resulto la papeleta, no me tomo la
libertad de pedirte código por la patilla, los que
vivimos de esto sabemos lo que cuesta, pero si puedes
orientarme guay, en cualquier caso te estoy muy
agradecido.

Jack
Respuesta Responder a este mensaje
#5 Anonimo
02/06/2004 - 19:51 | Informe spam
Me sorprende que vengas aquí a pedir ayuda, y que no
estés dispuesto a prestarla cuando se te pida.

No comprendo que todavía haya gente que siga
respondiéndote.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida