Forum » Izdelava spletišč » 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,..
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.
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:
Verjetno je v VB.net precej podobna ideja
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
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
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 ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Visual BasicOddelek: Programiranje | 3431 (2457) | cekr |
» | vb.net: dynamic textboxOddelek: Programiranje | 1180 (1070) | saule |
» | [VB] OpenOddelek: Programiranje | 1531 (1370) | Monster |
» | [ASP.NET] send mailOddelek: Programiranje | 1264 (1201) | Microsoft |
» | [Visual studio .NET] Rabim pomočOddelek: Programiranje | 1593 (1435) | darkolord |