none
Necesito mostrar información de una base de datos en un listbox, el texto que agrego es muy extenso y no lo muestra todo. RRS feed

  • Pregunta

  • ¿Cómo hago para que el texto que agregue tenga varios saltos de linea en el mismo item o que puedo usar para poder mostrar la información? ya use un datagridview, un textbox, pero estos no funcionan como yo quiero.
    lunes, 20 de junio de 2016 19:23

Respuestas

  • Hazlo owner draw variable

    Public Partial Class MainForm
    	Public Sub New()
    		Me.InitializeComponent()
    	End Sub
    	
    	Sub ListBox1_DrawItem(sender As Object, e As DrawItemEventArgs)
    		Dim lb As ListBox = DirectCast(sender, ListBox)
    		
    		e.DrawBackground
    		Dim b As Brush = If((e.State And DrawItemState.Selected) = DrawItemState.Selected, Brushes.White, Brushes.Black) 
    		e.Graphics.DrawString(lb.Items(e.Index).ToString, lb.Font, b, e.Bounds)
    		e.DrawFocusRectangle
    	End Sub
    	
    	Sub ListBox1_MeasureItem(sender As Object, e As MeasureItemEventArgs)
    		Dim lb As ListBox = DirectCast(sender, ListBox)
    		
    		e.ItemHeight = CInt(e.Graphics.MeasureString(lb.Items(e.Index).ToString, lb.Font, lb.ClientSize.Width).Height) + 2
    	End Sub
    	
    	Sub MainForm_Load(sender As Object, e As EventArgs)
    		listBox1.DrawMode = DrawMode.OwnerDrawVariable
    		AddHandler listBox1.DrawItem, AddressOf Me.ListBox1_DrawItem
    		AddHandler listBox1.MeasureItem, AddressOf Me.ListBox1_MeasureItem
    		
    		listBox1.Items.Add("¿Cómo hago para que el texto que agregue tenga varios saltos de linea en el mismo item o que puedo usar para poder mostrar la información?")
    		listBox1.Items.Add("ya use un datagridview, un textbox, pero estos no funcionan como yo quiero.")
    		
    	End Sub
    End Class
    

    lunes, 20 de junio de 2016 20:07

Todas las respuestas

  • Hazlo owner draw variable

    Public Partial Class MainForm
    	Public Sub New()
    		Me.InitializeComponent()
    	End Sub
    	
    	Sub ListBox1_DrawItem(sender As Object, e As DrawItemEventArgs)
    		Dim lb As ListBox = DirectCast(sender, ListBox)
    		
    		e.DrawBackground
    		Dim b As Brush = If((e.State And DrawItemState.Selected) = DrawItemState.Selected, Brushes.White, Brushes.Black) 
    		e.Graphics.DrawString(lb.Items(e.Index).ToString, lb.Font, b, e.Bounds)
    		e.DrawFocusRectangle
    	End Sub
    	
    	Sub ListBox1_MeasureItem(sender As Object, e As MeasureItemEventArgs)
    		Dim lb As ListBox = DirectCast(sender, ListBox)
    		
    		e.ItemHeight = CInt(e.Graphics.MeasureString(lb.Items(e.Index).ToString, lb.Font, lb.ClientSize.Width).Height) + 2
    	End Sub
    	
    	Sub MainForm_Load(sender As Object, e As EventArgs)
    		listBox1.DrawMode = DrawMode.OwnerDrawVariable
    		AddHandler listBox1.DrawItem, AddressOf Me.ListBox1_DrawItem
    		AddHandler listBox1.MeasureItem, AddressOf Me.ListBox1_MeasureItem
    		
    		listBox1.Items.Add("¿Cómo hago para que el texto que agregue tenga varios saltos de linea en el mismo item o que puedo usar para poder mostrar la información?")
    		listBox1.Items.Add("ya use un datagridview, un textbox, pero estos no funcionan como yo quiero.")
    		
    	End Sub
    End Class
    

    lunes, 20 de junio de 2016 20:07
  • Gracias

    martes, 21 de junio de 2016 1:27
  • Lo que ocupo mostrar información como lo hacen las aplicaciones de mensaje de texto, por ejemplo

    datos(esto es una fila de la base de datos)             fecha de publicación (esto es otra fila de la base de datos )

    Hoy no se podrá entrar porque las instalaciones

    están en reparaciones .                                                             12/06/2016

    Las instalaciones todavía están en reparaciones 

    deben tener paciencia.                                                               15/06/2016

    Necesito que me lo muestre de esa forma, utilicé un listbox pero no funciono, el listbox es muy limitado y lo único que me queda es un textbox.

    gracias

    miércoles, 22 de junio de 2016 3:20