Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/10/2014, 04:58
DjNelson
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 23 años, 3 meses
Puntos: 0
Estilo DataGridView no se aplica

Hola, programo en visual basic con el Visual Studio 2010.

Tengo un DataGrid en el que quiero habilitar/deshabilitar determinadas celdas en función de un valor.

Este código funciona bien en el evento 'CellValueChanged' pero necesito ponerlo también en el load del formulario y ahí simplemente no hace nada:

Código PHP:
For Each Row As DataGridViewRow In Me.DgFormasPagoProveedor.Rows
//Por si la columna trae un valor nulo le asigno un string vacío
            
If Row.Cells("TipoPago").Value Is System.DBNull.Value Then
                Row
.Cells("TipoPago").Value = ""
            
End If

            
Select Case Row.Cells("TipoPago").Value
                
Case ""//Si no se especifica un tipo de pago se vacían las columnas DiaSemana y DiaMes, se ponen como solo lectura y las pinto en color gris
                    
Me.DgFormasPagoProveedor.Rows(Row.Index).Cells("DiaSemana").Value = ""
                    
Me.DgFormasPagoProveedor.Rows(Row.Index).Cells("DiaSemana").ReadOnly = True
                    Me
.DgFormasPagoProveedor.Rows(Row.Index).Cells("DiaSemana").Style.BackColor = Color.Silver
                    Me
.DgFormasPagoProveedor.Rows(Row.Index).Cells("DiaMes").Value = ""
                    
Me.DgFormasPagoProveedor.Rows(Row.Index).Cells("DiaMes").ReadOnly = True
                    Me
.DgFormasPagoProveedor.Rows(Row.Index).Cells("DiaMes").Style.BackColor = Color.Silver

                
Case "Semanales"
//Otra forma de hacer lo mismo
                    
Row.Cells("DiaSemana").ReadOnly = False
                    Row
.Cells("DiaSemana").Style.BackColor = Color.White
                    Row
.Cells("DiaMes").Value = ""
                    
Row.Cells("DiaMes").ReadOnly = True
                    Row
.Cells("DiaMes").Style.BackColor = Color.Silver

                
Case "Mensuales"
                    
Row.Cells("DiaSemana").Value = ""
                    
Row.Cells("DiaSemana").ReadOnly = True
                    Row
.Cells("DiaSemana").Style.BackColor = Color.Silver
                    Row
.Cells("DiaMes").ReadOnly = False
                    Row
.Cells("DiaMes").Style.BackColor = Color.White
            End Select
        Next 
He probado a ponerlo en el evento Show del formulario y tampoco funciona.

El código compila perfectamente, NO DÁ NINGÚN ERROR, SIMPLEMENTE NO DESHABILITA LAS CELDAS NI LAS PINTA EN GRIS.

¿Alguna sugerencia?

Saludos y gracias.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)