Visual Basic.NET - Control en DataGrid

   
Vista:

Control en DataGrid

Publicado por Guillermo (26 intervenciones) el 15/01/2012 00:12:04
Estoy tratando de saber si en mi datagrid hay una fila seleccionada y no encuentro la manera de hacerlo. Pueden ayudarme?

Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Control en DataGrid

Publicado por Jorge Rivera (7 intervenciones) el 15/01/2012 00:29:17
En el LOAD
DataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect

Luego en el Evento CellEnter de datagridview

Private Sub DataGridView1_CellEnter(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellEnter

If DataGridView1.Rows(1).Selected Then
MessageBox.Show("si esta seleccionada")
End If

End Sub

Sustituye el 1 de Rows(1) por el valor de la fila que quieras saber si esta seleccionada, en este caso el mensaje solo se muestra si esta seleccionada la fila 1

Avisame si te ayudo esto y si no postea tus resultados para tratar de solucionarlos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Control en DataGrid

Publicado por Guillermo (26 intervenciones) el 15/01/2012 16:48:46
Intente hacerlo pero no lo logre, te poste mi pedaso de codigo y te detallo mi intencion a ver si me podes ayudar:

idCliente= DataGridView1.Item(0, DataGridView1.CurrentRow.Index).Value

If idCliente <> 0 Then
frmABMCliente.Text = "Cambiando Cliente"
frmABMCliente.Show()
Else
MsgBox("Debe seleccionar un Cliente")
End If

Mi intencion es la siguiente: En la primera linea le asigno a la variable idCliente el numero interno de mi cliente que esta en la columna cero de la fila seleccionada.
Luego en el if pregunto si el valor de esa variable es distinto de cero para abrir el formulario de ABM, sino muestro un mensaje para que el usuario haga una seleccón.

Mi problema es que no encuentro la forma de controlar antes de la primera linea (donde le asigno el valor a la variable) si efectivamente hay una fila seleccionada o no.
Todo este codigo esta comprendido en el evento click del boton Aceptar de mi formulario
Espero haber sido mas o menos claro.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Control en DataGrid

Publicado por Jorge Rivera (7 intervenciones) el 15/01/2012 18:11:33
declara una variable global de la siguiente manera

Public Class Form1
Private idCliente As Integer
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e .......

End Sub
End Class

Luego programa el evento CellEnter del Datagrid
Private Sub dgvListado_CellEnter(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvListado.CellEnter

idCliente = DataGridView1.Rows(e.RowIndex).Cells(0).Value ESTO ASIGNA IGUAL EL ID

End Sub

Ese evento se dispara siempre y cuando haya una fila seleccionada de lo contrario no, asi controlas la asignacion de tu variable.

Espero te sirva, si todavia no resuelve tu problema hazmelo saber que con gusto ayudo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Control en DataGrid

Publicado por Guillermo (26 intervenciones) el 15/01/2012 19:47:17
Ya tengo programado el evento CellEnter de mi grilla y me esta devolviendo como valor el 1, que seria el id del primer cliente de la grilla

pero al ejecutar mi proyecto, en la linea que le paso el valor a mi variable me salte el siguiente error:

No se encontro NullReferenceExeption y no me deja continuar... ahora si que estoy perdidaso..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Control en DataGrid

Publicado por Jorge Rivera (7 intervenciones) el 16/01/2012 16:26:07
Eso te sale porque estas enviando un dato null te ayudaria si me mandaras como tienes le codigo hasta el momento
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Control en DataGrid

Publicado por Guillermo (26 intervenciones) el 17/01/2012 17:12:24
Te paso el Código que tengo en el primer formulario, donde tengo una grilla que levanta clientes y los botones de agregar y modificar, a su vez con estos botones levanto un formulario de ABM donde agrego o modifico un cliente nuevo.
Te voy comentando a lo largo del código que es lo que pretendo de cada linea donde tengo el error.
Espero no sea muy engorroso y puedas ayudarme, desde ya muchas gracias


Public Class frmClientes
Public inBoton As Integer
Public inIdCliente As Integer
Private ConsultaClie As clsCliente = New clsCliente()

'''Activate del Formulario donde lleno la grilla y oculto la primera columna que es donde tengo el id
Private Sub frmClientes_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Activated
With dtgClie_Grilla
.DataSource = ConsultaClie.leerClientes()
.Columns(0).Visible = False
.RowHeadersWidth = 25
End With
End Sub

'''El load del Formulario, donde armo la grilla y le quiero dar nombre a la columna y no puedo
Private Sub frmClientes_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
With dtgClie_Grilla
.MultiSelect = False
.SelectionMode = DataGridViewSelectionMode.FullRowSelect
.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill
'.ColumnHeadersDefaultCellStyle.BackColor = Color.Gray
'.RowHeadersDefaultCellStyle.BackColor = Color.Gray
.AlternatingRowsDefaultCellStyle.BackColor = Color.LightCyan
.BackgroundColor = Color.WhiteSmoke
'.Columns(1).DataPropertyName = "Nro. Cliente" '''''Esta linea esta comentada porque le quiero dar el nombre a la columna y no lo toma
End With
End Sub

'''Boton agregar para abrir la ficha vacia y agregar un nuevo cliente
Private Sub btnNuevo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNuevo.Click
inBoton = 1
frmABMCliente.Text = "Registrando nuevo Cliente"
frmABMCliente.Show()
End Sub

'''Boton modificar para abrir la ficha de mi cliente y modificar los datos
Private Sub btnModificar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnModificar.Click
inBoton = 2
'CONTROLAR SI HAY ALGUN REGISTRO SELECCIONADO EN LA GRILLA
'If inIdCliente <> 0 Then
inIdCliente = dtgClie_Grilla.Item(0, dtgClie_Grilla.CurrentRow.Index).Value '''En esta linea de codigo le asigno el valor a la variable de mi idCliente para levantar los datos en caso de querer modificar. Es aca donde me sale el error de que no controlo si el dato es nulo
frmABMCliente.Text = "Cambiando Cliente"
frmABMCliente.Show()
'Else
'MsgBox("Seleccione un Cliente")
' End If
End Sub

'''Boton salir para cerrar el formulario
Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSalir.Click
Me.Close()
End Sub

'''Este es el evento que me dijiste que programe en los comentarios de mas arriba
Private Sub dtgClie_Grilla_CellEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dtgClie_Grilla.CellEnter
inIdCliente = dtgClie_Grilla.Rows(e.RowIndex).Cells(0).Value
End Sub
End Class
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar