» »

Vb 2005 - TextBox - Izračun števila vrstic?

Vb 2005 - TextBox - Izračun števila vrstic?

Samsung06 ::

lp

Uporabljam visual studio 2005 in sicer (VB).

Moj problem:

Iz baze bi rad prikazal določen text v textbox. Lepo določim fixsno širino textboxa. Določim tudi readonly, multilines je true, skrijem robove in scrollbara. Vendar ostane mi še višina oz. rows!

Rowse lahko tudi določim fiksno samo mi to prov nič ne pomaga, ker ne vem kako dolg bo text iz baze.

Tako, da sedaj iščem način, kako bi prvo izračunal število potrebnih vrstic(roWs), preden bi prikazal text v textboxu. ALi po domače, da se mi textbox po višini avtomatično prilagodi.

txtTextbox1.rows= ???
txtTextbox1.text= ...vezem podatke iz baze...

Aja, pa kot rečeno pišem v vb. Pa nisem nek expert, tko da če bo kaka razlaga naj bo enostavno razložena,..

Mavrik ::

Pogledaš število vrnjenih vrstic po queryu, potem pa ustrezno spremeniš višino textboxa.
The truth is rarely pure and never simple.

smash ::

Mavrik: kako oz. kje dobiš število vrnjenih vrstic?!?

Binji ::

Varjanta je da imas stevec in gres po stringu in povecas stevec vsakic ko naletis na \n znak ali pa ko je stevilo znakov po \n znaku vecje od sirine vrstice. Zlo tak naiven algoritem ampak (verjetno) dela.
Kdor ne navija ni Slovenc, hej, hej, hej!

sverde21 ::

V C# bi šlo nekako takole:
strnig text = textBox1.Text.ToString();
int vrstic = text.Split("\n").Length;


Verjetno je v VB.net precej podobna ideja :)
<?php echo `w`; ?>

smash ::

seveda ce string vsebuje \n znak..kaj pa ce ga ni oz. je string ena sama dolga vrstica

Zgodovina sprememb…

  • spremenilo: smash ()

smash ::

najbolje bi bilo izracunat vrstice tako, da bi preko tipa fonta dobil sirino besedila in potem to delil z sirino textboxa..in posledicno dobil stevilo vrstic..nekaj takega, sam se mi ne da brskat po objektih za font

smash ::

evo sem na brzino neki sprobal....je treba se postimat, samo mislim da je prava smer...vse kar je treba se ustimat, je izracunat pravo vrednost za visino textboxa..spodaj je koda

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

TextBox1.Width = Unit.Pixel(300)

Dim s As String = "1234567890qwertzuiopasdfghjklčyxcvbnm12345678901234567890qwert"

Dim newBitmap As Drawing.Bitmap = Nothing
Dim g As Drawing.Graphics = Nothing

newBitmap = New Drawing.Bitmap(1, 1, Drawing.Imaging.PixelFormat.Format32bppArgb)
g = Drawing.Graphics.FromImage(newBitmap)

Dim myFont As New Drawing.Font("Courier New", 8)
Dim StringSize As New Drawing.SizeF
StringSize = g.MeasureString(s, myFont)

Dim stVrstic As Integer = Math.Ceiling(StringSize.Width / TextBox1.Width.Value)
Dim visinaTextboxa As Integer = StringSize.Height * stVrstic

TextBox1.Text = s

TextBox1.Height = Unit.Pixel(visinaTextboxa)

End Sub

Zgodovina sprememb…

  • spremenilo: smash ()

smash ::

evo popravljene verzije, ki dela...

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

Dim _fontSize As Integer = 12
TextBox1.Font.Name = "Arial"
TextBox1.Font.Size = FontUnit.Point(_fontSize)
TextBox1.Width = Unit.Pixel(300)

Dim s As String = "1234567890qwertzuiopasdfghjklčyxcvbnm1234567fdsfdsfdsfsfsfsdfsWWWWWQ"

Dim newBitmap As Drawing.Bitmap = Nothing
Dim g As Drawing.Graphics = Nothing

newBitmap = New Drawing.Bitmap(1, 1, Drawing.Imaging.PixelFormat.Format32bppArgb)
g = Drawing.Graphics.FromImage(newBitmap)

Dim myFont As New Drawing.Font(TextBox1.Font.Name, _fontSize)
Dim StringSize As New Drawing.SizeF
StringSize = g.MeasureString(s, myFont)

Dim stVrstic As Integer = Math.Ceiling(StringSize.Width / TextBox1.Width.Value)
Dim visinaTextboxa As Integer = StringSize.Height * stVrstic

TextBox1.Text = s

TextBox1.Height = Unit.Pixel(visinaTextboxa)

End Sub


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Visual Basic

Oddelek: Programiranje
313195 (2221) cekr
»

vb.net: dynamic textbox

Oddelek: Programiranje
51100 (990) saule
»

[VB] Open

Oddelek: Programiranje
71441 (1280) Monster
»

[ASP.NET] send mail

Oddelek: Programiranje
51201 (1138) Microsoft
»

[Visual studio .NET] Rabim pomoč

Oddelek: Programiranje
91525 (1367) darkolord

Več podobnih tem