Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Textboxin tabulointiväli (VB.NET)

Sivun loppuun

pappara [24.02.2008 13:26:09]

#

Kuinka saadaan muutettua Textbox:n tabulointi väliä, kun on tarvis saada "riittävästi" yksittäisiä erilaisia merkkejä riville ja eri riveillä samaan kohtaan.

neau33 [24.02.2008 17:06:54]

#

Heippa pappara!

väännä oheisesta mallista omiin tarpeisiisi soveltuva viritelmä...

'...
Imports Microsoft.VisualBasic
'...
  Public Class MainForm
    '...
    Public Shared Tabs() As Object
    '...
    Private Sub MainFormLoad( _
    sender As System.Object, e As System.EventArgs)

    ReDim Preserve Tabs(4)
    Dim i As Integer

    For i = Tabs.GetLowerBound(0) To _
    Tabs.GetUpperBound(0)
      Tabs(i) = New String(vbTab, i + 1)
    Next i

    TextBox1.AppendText("Haloo" & Tabs(0) & "World" & vbCrLf)
    TextBox1.AppendText("Minä" & Tabs(1) & "täällä" & vbCrLf)
    TextBox1.AppendText("0" & Tabs(0) & "1" & Tabs(1) & "2" & vbCrLf)

End Sub

neau33 [24.02.2008 19:04:44]

#

Heippa taas pappara!

oheisen esimerkin mallista on ehkä helpompi väännellä...

'formille pari tekstiruutua (syöttö & tulostus)

'...
Imports Microsoft.VisualBasic
'...
Private Sub TextBox1TextChanged( _
sender As System.Object, e As System.EventArgs)

  TextBox1.MaxLength = 20
  TextBox1.Text = Replace(TextBox1.Text, "  ", " ")

End Sub

Private Sub TextBox1KeyPress(sender As System.Object, _
e As System.Windows.Forms.KeyPressEventArgs)

  Select Case e.KeyChar
    Case Chr(13)

    Static sarakket As Integer
    Dim mjono As String = TextBox1.Text

    If mjono.Length < TextBox1.MaxLength Then _
    mjono += New String(" ", _
    TextBox1.MaxLength - mjono.Length)

    TextBox1.Text = ""

    Select Case sarakket
      Case < 3
        TextBox2.AppendText(mjono & vbTab)
        sarakket += 1
      Case 3
        TextBox2.AppendText(mjono & vbCrLf)
        sarakket -= sarakket
    End Select
    mjono = Nothing

  End Select

End Sub

pappara [24.02.2008 21:13:16]

#

Moi Neau
Kiitoksia vinkeistä:)
Testasin tuota ensimmäistä versiota ja huomasin, että siinä on välit samat kuin vbTab lisättynä merkkijonoon merkkien väliin, mutta millä saa sen välin esim. vain kolmeen merkkiin ja niin ettei tulostettavalla merkillä ole merkitystä sivusuunnassa sijaintiin. Jos laitaa väliin vain " " tyhjää, merkit ovat erikohdissa riveillä, leveyteen vaikuttaa tulevat merkit esim. 1 X 1 H I 2.

neau33 [25.02.2008 00:28:27]

#

Heippa taas pappara!

kokeile esim GulimChe fonttia

setä [25.02.2008 09:30:03]

#

Voitko käyttää TextBoxin sijasta RichTextBoxia. Siihen saa tabulaattotit asetettua suoraan.

pappara [25.02.2008 19:22:45]

#

Kiitoksia taas vinkeistä, etsin ohjeista kuinka RichTextBox:iin asetetaan tabulaattorit, mutta en löytänyt, joten voisitko hieman valaista...

setä [25.02.2008 21:24:43]

#

En muista kuinka se tapahtui. Katsoin tuosta RichTextBox-projektistani mutta tuli tyly ilmoitus lisenssin puuttumisesta. En muista kuinka se piti rekisteröidä ja ihmettelen myös minne se on kadonnut kun kerran alunperin tuon projektin olen tällä koneella tehnyt.

VB5 ohjeista löytyi tämmöinen: (ehkei sovi VB.NETtiin, valitettavasti)

lainaus:

RichTextBox Control
Returns or sets the number of tabs and the absolute tab positions of text in a RichTextBox control. Not available at design time.

Syntax
object.SelTabCount [= count]
object.SelTabs(index) [= location]

The SelTabCount and SelTabs properties syntaxes have these parts:

object: An object expression that evaluates to an object in the Applies To list.

count: An integer that determines the number of tab positions in the selected paragraph(s) or in those paragraph(s) following the insertion point.

index: An integer that identifies a specific tab. The first tab location has an index of zero (0). The last tab location has an index equal to SelTabCount minus 1.

location: An integer that specifies the location of the designated tab. The units used to express tab positions are determined by the scale mode of the Form object or other object containing the RichTextBox control.

Remarks
By default, pressing TAB when typing in a RichTextBox control causes focus to move to the next control in the tab order, as specified by the TabIndex property. One way to insert a tab in the text is by pressing CTRL+TAB. However, users who are accustomed to working with word processors may find the CTRL+TAB key combination contrary to their experience. You can enable use of the TAB key to insert a tab in a RichTextBox control by temporarily switching the TabStop property of all the controls on the Form object to False while the RichTextBox control has focus. For example:

Private Sub RichTextBox1_GotFocus()
	' Ignore errors for controls without the TabStop property.
	On Error Resume Next
	' Switch off the change of focus when pressing TAB.
	For Each Control In Controls
		Control.TabStop = False
	Next Control
End Sub

Make sure to reset the TabStop property of the other controls when the RichTextBox control loses focus.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta