| Uutiset | Koodikirjasto | Wiki | Keskustelut | FAQ | Info |
Keskustelut - Visual Basic / C# / .NET - VB .NET 2010 RichTextBox ihmettelyäKili 15:01 3.4.12 Olen tehnyt RichTextBox:n logi ikkunaksi ja logia tulee suht. nopealla tahdilla. Kysymys kuuluukin siis, että syökö richtextbox rivejä kunnes se rivien määrällä saa ohjelman jumiutumaan vai alkaako korvata automaattisesti vanhemmasta päästä kun se tulee ns. täyteen? Kollega väitti, että richtextbox sisältäisi automaattisen korvaus ominaisuuden? En usko :) Eli voiko tuohon surutta .append linettää tavaraa ilman mitään omaa eventtiä, joka hoitaa korvauksen tietyn rivimäärän jälkeen? Jonathan 15:16 3.4.12 Testaa ja tarkkaile muistinkäyttöä. Grez 16:00 3.4.12 Siinä vaiheessa kun muisti ei riitä appendille, niin saat poikkeuksen. Jos se poistaa jotain appendia käytetäessä, niin se on rikki. Jari_Kettunen 19:31 3.4.12 Maxlength 64KB http://msdn.microsoft.com/en-us/library/system.windows.forms.richtextbox.maxlength.aspx Grez 20:33 3.4.12 Maxlength ei kylläkään rajoita AppendText komennolla lisättyä tekstiä. Jos rajoittaisi, niin loogisesti heittäisi sen poikkeuksen eikä poistaisi alusta. Jari_Kettunen 22:16 3.4.12 Ei tietenkään rajoita vaan heittää out of memory. 1)Jos ei aseta ervoa niin pitää koodata niin että laskee lisättävän tiedon pituuden ja sitten laskee ylittyykö 64 kilon raja ja sitten poistaa alusta tarvittaessa. 2) jos arvoa käyttää niin pitää tehdä se esimerkin mukaisesti. Grez 00:00 4.4.12 Siis millä tavalla noi 1 ja 2 nyt sitten erosi toisistaan, riippuen käyttääkö MaxLength -arvoa vai ei? Sama koodi kumpaankin. Mistä toi 64 kiloa tuli? Kili kysyi, että poistaako RTB itse tekstiä alusta kun sinne lisää ohjelmallisesti tekstiä loppuun (yli jonkin rajan). Vastaus on että ei, se ei missään tilanteessa tee niin, vaan sen tyylisen toiminnallisuuden joutuu koodaamaan. Mistään MaxLength -asetuksista ei ole mitään vaikutusta kysyttyyn asiaan eli ohjelmallisesti lisäämiseen. Sen sijaan jos haluttaisiin estää käyttäjää kirjoittamasta liikaa tekstiä, niin MaxLengthistä olisi iloa. Kuvatussa käyttötapauksessa (lokin näyttäminen) luulisi RTB:n olevan muutenkin käyttöliittymään read only. editoitu: 07:17 11.6.12 neau33 00:14 4.4.12 Eipä tuo kovin ihmeellisiä laskutoimituksia vaadi Private Sub AddMyText(ByVal textToAdd As String) If richTextBox1.TextLength + textToAdd.Length > richTextBox1.MaxLength Then richTextBox1.Text = Microsoft.VisualBasic.Right( _ richTextBox1.Text + textToAdd, richTextBox1.MaxLength) Else richTextBox1.Text += textToAdd End If End Sub -Nea- |
![]() Haku
|