Principales respuestas
LLAMAR UN FORMULARIO DESDE UN DATAGRID.. AYUDA!!!!!!

Pregunta
-
hola
k tal tengo un problema es estado buskando por internet y no encotr nada T^T
mi problema es lo siguiente
tengo un datagridview y bueno
digamos un ejemplo este datagridview tienes 3 columnas
y bueno yo ingreso datos de forma manual al datagridview
y digamos hay un campo en el datagrid k kiero cuando presione enter o otra tecla me salga un formulario de ayuda
diga estoy en la celda 1 no sale nada
celda 2 no sale nada
celda 3 cuando presione una tecla o enter me salga un formulario
puede ser cualkier celda
como ago eso una ayuda...
deRuNoMasviernes, 19 de junio de 2009 21:42
Respuestas
-
"deRuNoMas" preguntó:
> digamos hay un campo en el datagrid k kiero cuando presione
> enter o otra tecla me salga un formulario de ayuda
> diga estoy en la celda 1 no sale nada
> celda 2 no sale nada
> celda 3 cuando presione una tecla o enter me salga un formulario
> puede ser cualkier celda
> como ago eso una ayuda...Es decir, que deseas que te aparezca el formulario ÚNICAMENTE cuando pulsas la tecla Enter, o cualquier otra tecla, en alguna celda de la tercera columna de tu control DataGridView.
Para ello, sobrescribe el método ProcessCmdKey en el formulario que contiene el control DataGridView, para ejecutar el siguiente código:
Protected Overrides Function ProcessCmdKey( _
ByRef msg As Message, keyData As Keys) As Boolean' Indice de la columna de la celda actual
'
Dim columnIndex As Integer = DataGridView1.CurrentCell.ColumnIndex' Si no es la tercera columna, abandonamos el procedimiento
'
If (columnIndex <> 2) Then _
Return MyBase.ProcessCmdKey(msg, keyData)' Control activo actualmente
'
Dim ctrl As Control = ActiveControlIf (Not TypeOf ctrl Is DataGridViewTextBoxEditingControl) Then _
Return MyBase.ProcessCmdKey(msg, keyData)' Si se ha pulsado la tecla Return, mostramos
' el formulario
'
If (keyData = Keys.Enter) Then
Using frm As New Form2()
frm.ShowDialog()
End UsingReturn True
End If
Return MyBase.ProcessCmdKey(msg, keyData)
End Function
Como podrás observar, se mostrará el formulario cuando se pulse la tecla Enter. Pero si deseas mostrarlo cuando se pulse cualquier tecla, entonces sustituye la parte del código donde se detecta la tecla Enter para ejecutar lo siguiente:
' Si se ha pulsado cualquier tecla, mostramos
' el formulario
'
Using frm As New Form2()
frm.ShowDialog()
End UsingReturn True
Un saludo
Enrique Martínez
[MS MVP - VB]- Propuesto como respuesta Enrique M. MontejoModerator domingo, 22 de mayo de 2011 16:56
- Marcado como respuesta Enrique M. MontejoModerator martes, 24 de mayo de 2011 11:14
domingo, 22 de mayo de 2011 16:55Moderador
Todas las respuestas
-
Private Sub verperpag_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles verperpag.KeyPress If e.KeyChar = Chr(13) Then verinfsala.ShowDialog()/////en esta parte colocas el codigo o accion que quieres que realize End If coloca este codigo en en evetento keypress nota el grid por default tiene un evento en el enter entonces tienes que desabilitarlo con el siguienete codigo del evento key down Private Sub verperpag_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles verperpag.KeyDown If (e.KeyCode = Keys.Enter) Then e.Handled = True End If End Sub vale espero que te sirva
- Editado Hector manuelin viernes, 19 de junio de 2009 22:00
viernes, 19 de junio de 2009 21:56 -
hola k tal tio
uh..
creo k no leiste bien
te cuento
tengo un datagridview kiero llamar desde el datagridview un formulario
pero no todo el datagridview
si no desde una celda del datagridview
digamos estoy posicionado en la celda 2 de x fila
me salga el formulario 2 digamos
ahora me voy a la celda 3 x fila que me salga otro formulario puede ser formulario3 asi
como llamar formulario desde una celda
grax men te agradeceria k me ayudaras
deRuNoMasviernes, 19 de junio de 2009 22:09 -
Hola Aqui dejo una pequena ayuda parapoder hacer lo que necesitas en el datagrid... analizalo espero te ayude
AGREGA UN DATA GRID Y SIN MODIFICAR NADA EN EL AGREGA EL SIGUIENTE CODIGO FUREA DE TODAS LA SUB DECLARADAS EN EL FORM
Public Sub New() Me.InitializeComponent() Me.DataGridView1.Columns.Add("Formularios", "Formularios") Me.DataGridView1.Rows.Add("Formualrio 1") Me.DataGridView1.Rows.Add("Formualrio 2") Me.DataGridView1.Rows.Add("Formualrio 3") Me.TopMost = True
End Sub
Private Sub DataGridView1_RowEnter(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.RowEnter
Dim Esteform As New Form
Esteform.Text = "ayuda"
Esteform.Show()
End Sub
espero te haya ayudado con lo que necesitabas
Saludos
Melvin.sábado, 20 de junio de 2009 8:25 -
hola
bueno ya e comentado esto hace poko
tal vez no vieron lo k comente bueno
tengo un problema
uhh
kiero llamar un formulario desde un datagridview
pero desde una celda especifica
digamos estoy en la fila 5 colunma 3
presiono enter me salga un formulario
si estoy en otros k no esa esa celda no me sale nada
uha ayuda..!!
no encuentro nada plz!! ayuda!!!
o una idea para poder resolver esto..
deRuNoMas- Combinado Enrique M. MontejoModerator lunes, 23 de mayo de 2011 15:55
lunes, 22 de junio de 2009 16:18 -
Anterior mente puse un ejemplo en este link que tu preguntastes espero te ayude
http://social.msdn.microsoft.com/Forums/es-ES/vbes/thread/ea309948-2508-4af8-8602-9e863537431f
Saludos
Melvin
Todo Es posible si se studia con exfuerso no importando los de mas Dios esta con nosotros y no hay mas sabiduria que la de Dios, Everything is posible if you study a lot wiht esforce , God Loves us and there isn't anybody like God.... Melvin Saludoslunes, 22 de junio de 2009 18:27 -
si men
pero uhhh
cuando hizo lo k me dijiste
bueno llama pero cuando doy click en cualkier celda
yo kiero llamar a un formulario pero
de una celda especifica
digamos estoy en la fila 5 columna 3 llame al form1
estoy en la fila 3 columna 8 llame form2
masomenos asi
tu idea esta bien
pero me llama de una fila en cualkier columna
trate de agregar algo pero no me resulto
una ayuda!!
deRuNoMaslunes, 22 de junio de 2009 18:35 -
Bueno aqui te dejo otro ejemplo diferente amigo espero lo entiendas
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 'fila que se buscara Cambiar Item(0) a Item (1) u otro Dim Row = Me.DataGridView1.Rows.Item(0) 'tiene que Considir con el Row Buscado If Row.Index = 0 Then Row.Selected = True Dim Esteform As New Form Esteform.Text = "ayuda" Esteform.Show() Me.DataGridView1.CurrentRow.Selected = False End If End Sub
Saludos
melvin
Todo Es posible si se studia con exfuerso no importando los de mas Dios esta con nosotros y no hay mas sabiduria que la de Dios, Everything is posible if you study a lot wiht esforce , God Loves us and there isn't anybody like God.... Melvin Saludoslunes, 22 de junio de 2009 18:48 -
"deRuNoMas" preguntó:
> digamos hay un campo en el datagrid k kiero cuando presione
> enter o otra tecla me salga un formulario de ayuda
> diga estoy en la celda 1 no sale nada
> celda 2 no sale nada
> celda 3 cuando presione una tecla o enter me salga un formulario
> puede ser cualkier celda
> como ago eso una ayuda...Es decir, que deseas que te aparezca el formulario ÚNICAMENTE cuando pulsas la tecla Enter, o cualquier otra tecla, en alguna celda de la tercera columna de tu control DataGridView.
Para ello, sobrescribe el método ProcessCmdKey en el formulario que contiene el control DataGridView, para ejecutar el siguiente código:
Protected Overrides Function ProcessCmdKey( _
ByRef msg As Message, keyData As Keys) As Boolean' Indice de la columna de la celda actual
'
Dim columnIndex As Integer = DataGridView1.CurrentCell.ColumnIndex' Si no es la tercera columna, abandonamos el procedimiento
'
If (columnIndex <> 2) Then _
Return MyBase.ProcessCmdKey(msg, keyData)' Control activo actualmente
'
Dim ctrl As Control = ActiveControlIf (Not TypeOf ctrl Is DataGridViewTextBoxEditingControl) Then _
Return MyBase.ProcessCmdKey(msg, keyData)' Si se ha pulsado la tecla Return, mostramos
' el formulario
'
If (keyData = Keys.Enter) Then
Using frm As New Form2()
frm.ShowDialog()
End UsingReturn True
End If
Return MyBase.ProcessCmdKey(msg, keyData)
End Function
Como podrás observar, se mostrará el formulario cuando se pulse la tecla Enter. Pero si deseas mostrarlo cuando se pulse cualquier tecla, entonces sustituye la parte del código donde se detecta la tecla Enter para ejecutar lo siguiente:
' Si se ha pulsado cualquier tecla, mostramos
' el formulario
'
Using frm As New Form2()
frm.ShowDialog()
End UsingReturn True
Un saludo
Enrique Martínez
[MS MVP - VB]- Propuesto como respuesta Enrique M. MontejoModerator domingo, 22 de mayo de 2011 16:56
- Marcado como respuesta Enrique M. MontejoModerator martes, 24 de mayo de 2011 11:14
domingo, 22 de mayo de 2011 16:55Moderador