none
Ayuda con error en CellValueChanged RRS feed

  • Pregunta

  • Hola me esta dando problemas al poner codigo en CellValueChanged y no se como reparar

    Private Sub DGV_Lupulos_CellValueChanged(sender As Object, e As DataGridViewCellEventArgs) Handles DGV_Lupulos.CellValueChanged
            DGV_Lupulos.CurrentRow.Cells(1).Value = Lupulo.Items(1)
        End Sub

    Codigo donde hay conflicto

    Private Sub Bt_editar_receta_Click(sender As Object, e As EventArgs) Handles Bt_editar_receta.Click


            receta_nueva.Bt_Guardar_Receta_Nueva.Enabled = False
             
            receta_nueva.Show()

            receta_nueva.Text = "Editar Receta"

            Dim Nombre As String
            Nombre = DataGridViewX1.CurrentRow.Cells(4).EditedFormattedValue.ToString
            receta_nueva.TextBox1.Text = Nombre

            Dim Fecha_elaboracion As String
            Fecha_elaboracion = DataGridViewX1.CurrentRow.Cells(5).EditedFormattedValue.ToString
            receta_nueva.DateTimeInput1.Text = Fecha_elaboracion

            Dim Estilo As String
            Estilo = DataGridViewX1.CurrentRow.Cells(6).EditedFormattedValue.ToString
            receta_nueva.ComboBox6.Text = Estilo

            Dim tipo As String
            tipo = DataGridViewX1.CurrentRow.Cells(7).EditedFormattedValue.ToString
            receta_nueva.ComboBox7.Text = tipo

            Dim Densidad_Inicial As String
            Densidad_Inicial = DataGridViewX1.CurrentRow.Cells(8).EditedFormattedValue.ToString
            receta_nueva.TextBox3.Text = Densidad_Inicial

            Dim Densidad_Final As String
            Densidad_Final = DataGridViewX1.CurrentRow.Cells(9).EditedFormattedValue.ToString
            receta_nueva.TextBox5.Text = Densidad_Final

            Dim atenuacion As String
            atenuacion = DataGridViewX1.CurrentRow.Cells(10).EditedFormattedValue.ToString
            receta_nueva.LabelX11.Text = atenuacion

            Dim graduacion As String
            graduacion = DataGridViewX1.CurrentRow.Cells(11).EditedFormattedValue.ToString
            receta_nueva.LabelX10.Text = graduacion

            Dim color As Integer = DataGridViewX1.CurrentRow.Cells(12).EditedFormattedValue.ToString
            receta_nueva.ComboBox2.Text = receta_nueva.ComboBox2.Items.Item(color)


            Dim Fecha_Embotellado As String
            Fecha_Embotellado = DataGridViewX1.CurrentRow.Cells(13).EditedFormattedValue.ToString
            receta_nueva.DateTimeInput2.Text = Fecha_Embotellado

            Dim hervido As String
            hervido = DataGridViewX1.CurrentRow.Cells(15).EditedFormattedValue.ToString
            receta_nueva.ComboBox5.Text = hervido

            Dim Inicio_fermentacion As String
            Inicio_fermentacion = DataGridViewX1.CurrentRow.Cells(17).EditedFormattedValue.ToString
            receta_nueva.DateTimeInput3.Text = Inicio_fermentacion

            Dim Finalizacion_fermentacion As String
            Finalizacion_fermentacion = DataGridViewX1.CurrentRow.Cells(18).EditedFormattedValue.ToString
            receta_nueva.DateTimeInput4.Text = Finalizacion_fermentacion

            Dim Secundario As String
            Secundario = DataGridViewX1.CurrentRow.Cells(19).EditedFormattedValue.ToString
            receta_nueva.DateTimeInput5.Text = Secundario

            Dim Finalizacion_Secundario As String
            Finalizacion_Secundario = DataGridViewX1.CurrentRow.Cells(20).EditedFormattedValue.ToString
            receta_nueva.DateTimeInput6.Text = Finalizacion_Secundario

            'CALCULA EL ALCOHOL EN EDITAR
            If receta_nueva.TextBox5.Text = "" Or receta_nueva.TextBox3.Text = "" Then
                receta_nueva.LabelX10.Text = FormatNumber(0, 2) & " °"
                receta_nueva.LabelX11.Text = FormatNumber(0, 2) & " %"

            Else
                Dim tb3 As String = Val(receta_nueva.TextBox3.Text) - Val(receta_nueva.TextBox5.Text)
                Dim tb3_2 As String = tb3 / 7.45

                receta_nueva.LabelX10.Text = FormatNumber(tb3_2, 2) & " °"

                Dim ATENUA As String = Val(receta_nueva.TextBox3.Text) - 1000
                Dim ATENUA2 As String = 100 * ((Val(receta_nueva.TextBox3.Text) - Val(receta_nueva.TextBox5.Text)) / ATENUA)

                receta_nueva.LabelX11.Text = FormatNumber(ATENUA2, 2) & " %"
            End If
            'CALCULA EL ALCOHOL EN EDITAR
            ' NOMBRE DEL GROUPPANEL2
            receta_nueva.GroupPanel2.Text = receta_nueva.GroupPanel2.Text & " " & "de " & "la Cerveza " & DataGridViewX1.CurrentRow.Cells(4).Value
            ' NOMBRE DEL GROUPPANEL2

            ' NOMBRE DEL Gp_Aditivos
            receta_nueva.Gp_Aditivos.Text = receta_nueva.Gp_Aditivos.Text & " " & "de " & "la Cerveza " & DataGridViewX1.CurrentRow.Cells(4).Value
            ' NOMBRE DEL Gp_Aditivos

            receta_nueva.TextBox1.Enabled = False
            receta_nueva.DateTimeInput1.Enabled = False

            If receta_nueva.TextBox5.Text = "0" Then
                receta_nueva.LabelX11.Text = "0,00 %"
                receta_nueva.LabelX10.Text = "0,00 °"
            End If
            receta_nueva.DataGridViewX2.AutoResizeColumns() 'AJUSTA COLUMNAS A EL CONTENIDO DEL DATAGRIDVIEW

            If receta_nueva.DataGridViewX2.Rows.Count <= 0 Then
                receta_nueva.Bt_Eliminar_Macerado.Enabled = False
            End If

          '' CARGA LLAS MALTAS
            receta_nueva.PageSlider1.SelectedPage = receta_nueva.PageSliderPage1

        End Sub


    • Editado JETET viernes, 23 de enero de 2015 9:42
    • Cambiado Enrique M. Montejo lunes, 26 de enero de 2015 7:50 Pregunta relaconada con eventos de controles de Windows Forms.
    viernes, 23 de enero de 2015 8:19

Todas las respuestas

  • Pero el error que aparece en la pantalla no se produce en el código que copias en el mensaje.

    Para controlar el error del pantallazo:

    If DGV_RECETAS.CurrentRow.Cells(0).Value <> DBNull.Value AndAlso Not string.IsNullOrEmpty(CStr(DGV_RECETAS.CurrentRow.Cells(0).Value)) Then

    Aunque no sé si es esto lo que necesitas.

    viernes, 23 de enero de 2015 8:48
  • Hola:
    ¿Porque no le pasas la fila actual del datagridview al Form receta_nueva, y en el Load de este haces todo el proceso de carga; asi no tienes que estar cargando un Form desde otro Form?

    Ejemplo
    En el form que llama

    Public Class FrmLlamador

        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            Dim loFila As DataGridViewRow = Me.DataGridView1.CurrentRow()
            Dim loForm As New receta_nueva
            loForm.mDataGridViewRow = loFila
            loForm.Show()
        End Sub
    End Class

    En el form que es llamado

    Public Class receta_nueva
        Public mDataGridViewRow As DataGridViewRow

        Private Sub receta_nueva_Load(sender As Object, e As System.EventArgs) Handles Me.Load
            Me.TextBox1.Text = mDataGridViewRow.Cells("PRIMER_CAMPO").Value.ToString
            Me.TextBox2.Text = mDataGridViewRow.Cells("SEGUNDO_CAMPO").Value.ToString
        End Sub
    End Class

    Un saludo desde Bilbo
    Carlos

    viernes, 23 de enero de 2015 8:50
  • Perdon me equivoque con la foto por favor mira de nuevo el error
    viernes, 23 de enero de 2015 9:43
  • Perdon me equivoque con la foto por favor mira de nuevo el error
    viernes, 23 de enero de 2015 9:43
  • ¿Te da más información en la propiedad InnerException de la excepción?
    viernes, 23 de enero de 2015 9:52
  • Buenos días el error lo tienes en que primero deshabilitas un formulario que no ha sido creado o abierto a aun. Debes cambiar el orden de la primera línea por el de la segunda.

    receta_nueva.Bt_Guardar_Receta_Nueva.Enabled = False
             
    receta_nueva.Show()
    
    'cambiar por:
    
            receta_nueva.Show() 'Aquí se abre el form o lo que es lo mismo lo creas por eso te da el error.
    
    receta_nueva.Bt_Guardar_Receta_Nueva.Enabled = False 
             
    Espero haber sido de ayuda.


    Si la contestación te ha servido de ayuda márcala como respuesta. Si lo que publico no funciona, no tengo la culpa, SOY HUMANO, no una máquina.

    viernes, 23 de enero de 2015 9:53
  • Lo e cambias pero me lanza este error ahora

    Gracias por contestar

    viernes, 23 de enero de 2015 11:18
  • Sí, en realidad esas instrucciones deberían funcionarte en cualquier orden.

    La cuestión es ¿dónde inicializas la variable receta_nueva? ¿Tiene asignado un formulario existente?

    viernes, 23 de enero de 2015 11:33
  • el error me lo da cuando pongo esta instrucion 

     Private Sub DGV_Lupulos_CellValueChanged(sender As Object, e As DataGridViewCellEventArgs) Handles DGV_Lupulos.CellValueChanged
            DGV_Lupulos.CurrentRow.Cells(1).Value = Lupulo.Items(1)
        End Sub

    si la quito todo va bien

    viernes, 23 de enero de 2015 12:35
  • Pero entonces el error no se corresponde con el pantallazo que has mandado ¿no?
    viernes, 23 de enero de 2015 12:44
  • Pero entonces el error no se corresponde con el pantallazo que has mandado ¿no?

    Cuando uso DGV_Lupulos_CellValueChanged con DGV_Lupulos.CurrentRow.Cells(1).Value = Lupulo.Items(1) 

    no va

    pero si pongo por ejemplo label1.text = "salvi" si va

    viernes, 23 de enero de 2015 14:40