none
Error_1_'ColumnIndex' no es un miembro de 'System.EventArgs' RRS feed

  • Pregunta

  • Buenas me lanza este error por que quiero cargar el nombre de la columna en un textbox que se crea en tiempo de ejecucion y me tira este error

    Gracias

    Private Sub Dgv_Herramientas_CellMouseEnter(sender As Object, e As DataGridViewCellEventArgs) Handles Dgv_Herramientas.CellMouseEnter
            If e.ColumnIndex >= 0 Then
                Label3.Text = Me.Dgv_Herramientas.Columns(e.ColumnIndex).HeaderText.ToString()
            End If
        End Sub
        Private Sub Dgv_Herramientas_MouseEnter(sender As Object, e As EventArgs) Handles Dgv_Herramientas.MouseEnter
            If Dgv_Herramientas.Columns.Count - 1 < 0 Then
            Else
                RenombrarToolStripMenuItem.Enabled = True
            End If
        End Sub
        Private Sub Herramientas_MouseEnter(sender As Object, e As EventArgs) Handles Me.MouseEnter
            RenombrarToolStripMenuItem.Enabled = False
        End Sub
        'CREA FORMULARIO EN TIEMPO DE EJECUCION
        Private Sub RenombrarToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles RenombrarToolStripMenuItem.Click
            frmNuevo = New Form()
            TEXTBOXNUEVO = New TextBox()
            Botonnuevo = New Button()
            frmNuevo.Controls.Add(TEXTBOXNUEVO)
            frmNuevo.Controls.Add(Botonnuevo)
            frmNuevo.StartPosition = FormStartPosition.CenterParent 'CENTRA FORMULARIO
            frmNuevo.MaximizeBox = False   'DESACTIVA MAXIMIZAR
            frmNuevo.MinimizeBox = False   'DESACTIVA MINIMIZAR
            frmNuevo.FormBorderStyle = Windows.Forms.FormBorderStyle.FixedDialog 'DESACTIVA MODIFICAR ANCHURA Y ALTURA DEL FORMULARIO
            frmNuevo.Size = New Size(400, 200)
    
            AddHandler Botonnuevo.Click, AddressOf Botonnuevo_Click
    
            With Botonnuevo
                .Text = "Aceptar"
                .Location = New Point(200, 50) ' 1º horizontar 2º vertical
                .Name = "Boton1"
            End With
    
            With TEXTBOXNUEVO
                .Text = Me.Dgv_Herramientas.Columns(e.ColumnIndex).HeaderText.ToString()
                
                .Location = New Point(50, 50)
                .Name = "TEXTBOXfrm1"
            End With
            With frmNuevo
                .Text = "Renombrar Columna"
                .Show()
                .Name = "FrmRenombrar"
            End With
        End Sub

    jueves, 10 de marzo de 2016 16:09

Respuestas

  • Hola:

     Recuerda que no todos lo controles exponen la misma información, por ejemplo desde el Click del DataGridview tu puedes tomar el indice de la fila en la que hiciste click por medio del e.rowIndex pero no puedes obtener ese indice mediante el evento click de un menú (como lo estas intentando) ya que no cuenta con esa propiedad.

     Para lograr esto que deseas, sugiero que utilices una variable, a la cual enviaras el nombre de la columna donde se hace click usando en evento CellMouseClick del DataGridview, posteriormente en el evento Click de tu menú ya no llamaras a e.RowIndex sino a la variable que contiene la información de la titulo de la columna.

     Analiza lo que hago en este ejemplo:

    contextMenuStrip y DataGridView

      Ahí veras que tomo el valor de un row y lo envió a una variable para posteriormente usarlo en el click de un elemento de un ContextMenu.

     Espero te sea de utilidad.

     


    Saludos desde Monterrey, Nuevo León, México!!!

    • Marcado como respuesta JETET sábado, 12 de marzo de 2016 7:02
    jueves, 10 de marzo de 2016 16:58

Todas las respuestas

  • Hola:

     Recuerda que no todos lo controles exponen la misma información, por ejemplo desde el Click del DataGridview tu puedes tomar el indice de la fila en la que hiciste click por medio del e.rowIndex pero no puedes obtener ese indice mediante el evento click de un menú (como lo estas intentando) ya que no cuenta con esa propiedad.

     Para lograr esto que deseas, sugiero que utilices una variable, a la cual enviaras el nombre de la columna donde se hace click usando en evento CellMouseClick del DataGridview, posteriormente en el evento Click de tu menú ya no llamaras a e.RowIndex sino a la variable que contiene la información de la titulo de la columna.

     Analiza lo que hago en este ejemplo:

    contextMenuStrip y DataGridView

      Ahí veras que tomo el valor de un row y lo envió a una variable para posteriormente usarlo en el click de un elemento de un ContextMenu.

     Espero te sea de utilidad.

     


    Saludos desde Monterrey, Nuevo León, México!!!

    • Marcado como respuesta JETET sábado, 12 de marzo de 2016 7:02
    jueves, 10 de marzo de 2016 16:58
  • Gracias jose luis tan sencillo y no e caido 

    Gracias

    sábado, 12 de marzo de 2016 7:03