none
Codigo me funciona en load y no en TextChanged RRS feed

  • Pregunta

  • Buenas este codigo me funciona en load cuando gargo el formulario pero no me funciona en el TextChanged que es donde tiene que ir

    Gracias

    Dim Ic As New DevComponents.DotNetBar.Metro.MetroTileItem
            Ic.Name = "Contendor1"
            Ic.TileSize = New Size(250, 100)
    
            ItemContainer1.SubItems.Add(Ic)

    lunes, 31 de octubre de 2016 8:46

Respuestas

Todas las respuestas

  • Hola,

    sé un poco más concreto, qué pretendes conseguir con ello?

    lunes, 31 de octubre de 2016 8:50
  • Pretendo que me añada metro tile en el contenedor

    If ItemContainer1.SubItems.Count = 0 Then
                '' ''ItemContainer1.SubItems.Clear()
                
                For Buscar_cerveza = 0 To Inicio.DataGridView1.RowCount - 1
                    If Inicio.DataGridView1.Rows(Buscar_cerveza).Cells(1).Value.ToString.ToLower.Contains(Text_Buscador.Text.ToString.ToLower) Then
    
                        'Dim pb As New DevComponents.DotNetBar.Metro.MetroTileItem
    
                        ItemContainer1.SubItems.Add(pb)
                        pb.TileSize = New Size(250, 100)
    
                        pb.Name = "pb" & Buscar_cerveza.ToString
    
                        '' ''ItemContainer1.SubItems.Add(pb)
    
                        Dim row As DataGridViewRow = Inicio.DataGridView1.Rows(Buscar_cerveza)
    
                        If row IsNot Nothing Then
                            pb.TitleText = row.Cells(1).Value
    
                        End If
    
    
                        'Exit For
                    End If
    
                Next
            Else
    
            End If

    lunes, 31 de octubre de 2016 8:56
  • Esto quiero conseguir 

    lunes, 31 de octubre de 2016 9:04
  • Con el text changed se añadirá uno por cada tecla que pulsemos en el textbox, es eso lo que quieres conseguir?
    lunes, 31 de octubre de 2016 9:34
  • tendria que borrar lo que hay y añidir lo que coincidad con el texto
    lunes, 31 de octubre de 2016 10:16
  • Ten en cuenta que la condición

    If ItemContainer1.SubItems.Count = 0 Then ...

    hace que el código que se incluye solo se ejecute si no tienes elementos. Quita la condición para poder hacer la llamada desde TextChanged y quita las comillas de la linea

    ItemContainer1.SubItems.Clear()

    para que se ejecute y borre el contenido antes de añadir los valores que cumplan la condición.


    Saludos, Javier J

    lunes, 31 de octubre de 2016 11:03
  • Asi no hace nada

    Private Sub Text_Buscador_TextChanged(sender As Object, e As EventArgs) Handles Text_Buscador.TextChanged
            
            ItemContainer1.SubItems.Clear()
    
            For Buscar_cerveza = 0 To Inicio.DataGridView1.RowCount - 1
                If Inicio.DataGridView1.Rows(Buscar_cerveza).Cells(1).Value.ToString.ToLower.Contains(Text_Buscador.Text.ToString.ToLower) Then
    
                    Dim pb As New DevComponents.DotNetBar.Metro.MetroTileItem
    
                    ItemContainer1.SubItems.Add(pb)
                    pb.TileSize = New Size(250, 100)
    
                    pb.Name = "pb" & Buscar_cerveza.ToString
    
                    
    
                    Dim row As DataGridViewRow = Inicio.DataGridView1.Rows(Buscar_cerveza)
    
                    If row IsNot Nothing Then
                        pb.TitleText = row.Cells(1).Value
    
                    End If
    
    
                    
                End If
    
            Next
           
            
    
        End Sub

    lunes, 31 de octubre de 2016 11:32
  • si quito esto tampoco hace nada

     ItemContainer1.SubItems.Clear()
    lunes, 31 de octubre de 2016 11:35
  • pero si pongo esto en el load me aparece asi antes de escribir nada en el textbox y cuando escribo solo lo añade cuando el puntero esta en lo alto del primer metrotileitem

    Private Sub Buscador_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
            Dim Ic As New DevComponents.DotNetBar.Metro.MetroTileItem
            Ic.Name = "Contendor1"
            Ic.TileSize = New Size(250, 100)
    
            ItemContainer1.SubItems.Add(Ic)
            
           
        End Sub

    lunes, 31 de octubre de 2016 11:41
  • ¿No hace nada? Necesito más datos:

    ¿Entra en TextChanged?

    ¿Encuentra en el grid alguna(s) fila(s) que cumpla la condición?

    ¿Dónde defines ItemContainer1?


    Saludos, Javier J

    lunes, 31 de octubre de 2016 11:50
  • para que funcione tiene que tener añadido primero 

     Dim Ic As New DevComponents.DotNetBar.Metro.MetroTileItem
            Ic.Name = "Contendor1"
            Ic.TileSize = New Size(250, 100)
    
            ItemContainer1.SubItems.Add(Ic)

    que es el recuadro azul que se ve solo en una foto 

    si quito este codigo no hace nada

    lunes, 31 de octubre de 2016 11:57
  • si hay coincidencia del grilla lo que yo veo es que tiene que tener un 

    MetroTileItem

    para poder añadir los demas y es aqui la cuestion que eso no es lo que quiero


    • Editado JETET lunes, 31 de octubre de 2016 11:59
    lunes, 31 de octubre de 2016 11:58
  • He puesto un trozo de de codigo para que me lance un mensaje 

    y si recorre todos los rows que coincide como se ve en la imagen

    pero no lo agrega 

    lunes, 31 de octubre de 2016 12:32
  • Asi me agrega los componentes pero si lo pongo en el texboxchange no me hace nada de nada

    Private Sub Buscador_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
           
            Agregar_metro()
           
           
        End Sub
    
        Sub Agregar_metro()
           
            ItemContainer1.SubItems.Clear()
    
    
            For Buscar_cerveza = 0 To Inicio.DataGridView1.RowCount - 1
                If Inicio.DataGridView1.Rows(Buscar_cerveza).Cells(1).Value.ToString.ToLower.Contains(Text_Buscador.Text.ToString.ToLower) Then
    
                    Dim pb As New DevComponents.DotNetBar.Metro.MetroTileItem
                    pb.Name = "pb" & Buscar_cerveza.ToString
                    pb.TileSize = New Size(250, 100)
                    ItemContainer1.SubItems.Add(pb)
    
    
                   
    
                    Dim row As DataGridViewRow = Inicio.DataGridView1.Rows(Buscar_cerveza)
    
                    If row IsNot Nothing Then
                        pb.Text = row.Cells(1).Value
    
                    End If
    
                    
                End If
    
            Next
        End Sub

    lunes, 31 de octubre de 2016 16:23
  • Solucionado

    he tenido que poner esto para que funcione

    MetroTilePanel1.Refresh()
    ItemContainer1.Refresh()

    • Marcado como respuesta JETET martes, 1 de noviembre de 2016 8:01
    martes, 1 de noviembre de 2016 8:01