Foros del Web » Programación para mayores de 30 ;) » .NET »

OnPaint ¿como modificar el color de borde de datagridview?- WindowsForms

Estas en el tema de OnPaint ¿como modificar el color de borde de datagridview?- WindowsForms en el foro de .NET en Foros del Web. hola, soy programador en .NET C# y vb, manejo bastante lo que son bases de datos, y otrsas cosas. Pero nunca he tratado de Crear ...
  #1 (permalink)  
Antiguo 26/01/2009, 09:35
Avatar de robertgustavo  
Fecha de Ingreso: marzo-2008
Ubicación: Camaná - Arequipa
Mensajes: 213
Antigüedad: 16 años, 1 mes
Puntos: 4
Pregunta OnPaint ¿como modificar el color de borde de datagridview?- WindowsForms

hola, soy programador en .NET C# y vb, manejo bastante lo que son bases de datos, y otrsas cosas. Pero nunca he tratado de Crear y modificar Controles.
En esta oportunidad he querido cambiar el colo de borde de un datagridview.
Este componentes trae 3 tipos de borde=
__________________________________________________ _______________
BorderStyle.None
BorderStyle.FixedSingle
BorderStyle.Fixed3D

normalmente uso el Fixed3D, pero no trae alguna propiedad para cambiar el color de borde, que es azul creo.
Segun lo que he leido , los componentes traen el evento OnPaint.
¿De que forma puede acceder a este evento y modificar el color de borde de este control ?
y disculpen si no hay coherencia en lo que trato de explicarles.
SALUDOS.
__________________
Soluciones basadas en .NET Framework y SQL Server
  #2 (permalink)  
Antiguo 26/01/2009, 10:31
 
Fecha de Ingreso: noviembre-2008
Ubicación: Madrid, España
Mensajes: 149
Antigüedad: 15 años, 5 meses
Puntos: 5
Respuesta: OnPaint ¿como modificar el color de borde de datagridview?- WindowsForms

Cita:
Iniciado por robertgustavo Ver Mensaje
hola, soy programador en .NET C# y vb, manejo bastante lo que son bases de datos, y otrsas cosas. Pero nunca he tratado de Crear y modificar Controles.
En esta oportunidad he querido cambiar el colo de borde de un datagridview.
Este componentes trae 3 tipos de borde=
__________________________________________________ _______________
BorderStyle.None
BorderStyle.FixedSingle
BorderStyle.Fixed3D

normalmente uso el Fixed3D, pero no trae alguna propiedad para cambiar el color de borde, que es azul creo.
Segun lo que he leido , los componentes traen el evento OnPaint.
¿De que forma puede acceder a este evento y modificar el color de borde de este control ?
y disculpen si no hay coherencia en lo que trato de explicarles.
SALUDOS.
Hola,

No te puedo dar una respuesta 100% segura del tipo "Sí" o "No", pero he trabajado bastante tiempo con controles y alguna vez quise hacer algo así. La instancia de PaintEventArgs que te viene en el evento Paint del DataGridView trae un objeto Graphics, que, a su vez, tiene información sobre el área ocupada por el control, etc...el tema partiría por sobreescribir el método paint de modo que tu utilizases ese objeto Graphics para dibujar el borde a través de los métodos Draw que posee. Esos métodos Draw reciben un parámetro del tipo Pen que te permite especificar el color de lo que quieres dibujar.

Supongo que la idea pasaría por llamar al método estandar que dibuja el control y luego dibujar tú un rectángulo con el color y aspecto deseado.

Si finalmente consigues hacer esto, te agradecería que posteases cómo lo conseguistes :)

Un saludo
  #3 (permalink)  
Antiguo 26/01/2009, 12:49
Avatar de robertgustavo  
Fecha de Ingreso: marzo-2008
Ubicación: Camaná - Arequipa
Mensajes: 213
Antigüedad: 16 años, 1 mes
Puntos: 4
Respuesta: OnPaint ¿como modificar el color de borde de datagridview?- WindowsForms

Bueno, estube investigando y en esta página dice que no se puede, esta definido por el sistema, aunque yo creo que si se puede, ya que he visto que el datagridViewX que trae DevComponents.DotnetBar, es un datagridview modificado y usa otros colores de borde .
Como no dispongo de mucho tiempo, se me ocurrio esto:
Poner un control panel en un formulario, arrastar 4 picturebox y ponerlos uno en cada esquina(DOCK-TOP,LEFT,RIGHT) de 1 de grosor cada uno, y meter un datagridview sin borde(none)dentro con el DOCK-FILL, los picturebox representarian el Borde, ahora seria crear una funcion que ponga color personalizado a cada Picturebox.

Asi quedo:

http://www.cuelgalo.com/viewer.php?i...4_dgBorder.jpg


Aunque, me gustaria ponerlo en un usercontrol y asignarle datos y personalizarlo como seria esto?
Saludos,
__________________
Soluciones basadas en .NET Framework y SQL Server

Última edición por robertgustavo; 26/01/2009 a las 12:56
  #4 (permalink)  
Antiguo 27/01/2009, 01:38
 
Fecha de Ingreso: noviembre-2008
Ubicación: Madrid, España
Mensajes: 149
Antigüedad: 15 años, 5 meses
Puntos: 5
Respuesta: OnPaint ¿como modificar el color de borde de datagridview?- WindowsForms

Cita:
Iniciado por robertgustavo Ver Mensaje
Bueno, estube investigando y en esta página dice que no se puede, esta definido por el sistema, aunque yo creo que si se puede, ya que he visto que el datagridViewX que trae DevComponents.DotnetBar, es un datagridview modificado y usa otros colores de borde .
Como no dispongo de mucho tiempo, se me ocurrio esto:
Poner un control panel en un formulario, arrastar 4 picturebox y ponerlos uno en cada esquina(DOCK-TOP,LEFT,RIGHT) de 1 de grosor cada uno, y meter un datagridview sin borde(none)dentro con el DOCK-FILL, los picturebox representarian el Borde, ahora seria crear una funcion que ponga color personalizado a cada Picturebox.

Asi quedo:

http://www.cuelgalo.com/viewer.php?i...4_dgBorder.jpg


Aunque, me gustaria ponerlo en un usercontrol y asignarle datos y personalizarlo como seria esto?
Saludos,
Pues eso que quieres hacer es lo más fácil, y es casi exactamente como tú has dicho: creando un user control, dockear los picturebox en los extremos del UserControl y meter el datagridview haciendo dock->fill. El resto, a través de propiedades y métodos. Yo tuve que crear una librería de controles personalizados y lo hice de modo que cada control implementase su propio acceso a datos, aunque quizá sea mejor que este último lo realices desde una clase común y que sea la forma de enganchar los datos con el control lo que resulte diferente para cada control. Utilizas propiedades para proporcionar la cadena de conexión y el tipo de proveedor con el que te conectarás a BDD y creas métodos de acceso para cargar/actualizar/etc...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:48.