Newsgroup: it.comp.lang.visual-basic
Titolo: Domanda su TextBox.

Salve, da poco mi sto avvicinando alla programmazione in visual basic.
Volevo sapere se era possibile all'interno di una casella di testo definire
la distanza dai bordi per il contenuto delle stesse.
Ad esempio quando si visualizza o si immette un contenuto allineato a
sinistra, è possibile dargli un piccolo margine sinistro all'interno della
casella in modo che non risulti visivamente 'attaccato' al bordo sinistro
della casella stessa ?
In microsoft access è possibile definire nel formato delle caselle di testo
la distanza dai bordi per il contenuto, in visual basic è possibile far
questo ??
Grazie.
Saluti, Salvatore.

 questo ??
con i textbox no, ... prova con il controllo RichTextBox!
CIAO


Scusa se Smentisco ma... è Possibile (Ovviamente via Codice Subcls)
In Un Modulo :
Option Explicit
Private Const EC_LEFTMARGIN = &H1
Private Const EC_RIGHTMARGIN = &H2
Private Const EM_SETMARGINS = &HD3&
Private Const EM_GETMARGINS = &HD4&
Private Declare Function SendMessageLong Lib "user32" Alias "SendMessageA"
(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam
As Long) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA"
(ByVal hwndParent As Long, ByVal hwndChildAfter As Long, ByVal lpszClass As
String, ByVal lpszWindow As String) As Long
Private Property Get EditahWnd(ByVal Controllo As Control) As Long
   If TypeName(Controllo) = "ComboBox" Then
      EditahWnd = FindWindowEx(Controllo.hwnd, 0, "EDIT", vbNullString)
   ElseIf TypeName(Controllo) = "TextBox" Then
      EditahWnd = Controllo.hwnd
   End If
End Property
Public Property Let MargineSinistro(ByVal Controllo As Control, ByVal
lMargin As Long)
   Dim lhWnd As Long
   lhWnd = EditahWnd(Controllo)
   If (lhWnd <> 0) Then
      SendMessageLong lhWnd, EM_SETMARGINS, EC_LEFTMARGIN, lMargin
   End If
End Property
Public Property Get MargineSinistro(ByVal Controllo As Control) As Long
   Dim lhWnd As Long
   lhWnd = EditahWnd(Controllo)
   If (lhWnd <> 0) Then
      MargineSinistro = (SendMessageLong(lhWnd, EM_GETMARGINS, 0, 0) And
&HFFFF&)
   End If
End Property
By Utente Win2k

> Scusa se Smentisco ma... è Possibile (Ovviamente via Codice Subcls)
grande! non lo sapevo ....
CIAO

Salve, da poco mi sto avvicinando al Visual Basic, provenendo da Access
2000.
Volevo sapere se era possibile definire dei bordi all'interno delle
caselle di testo per dare dei margini interni al contenuto delle stesse.
In Access 2000, c'e' la possibilità di definire ad esempio un margine
sinistro per il contenuto in modo che non risulti 'attaccato' al bordo
stesso della cassella.  In VB è possibile questo ????
Grazie.
Saluti, Silvio.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Saluti, Silvio.
che io sappia, col ms richtextbox (devi sceglierlo fra i componenti):
Private Sub LeftMargin()
   Dim Margins As Integer
   Margins = 250
   With RTF
        .Visible = False
        .SelStart = 1
        .SelLength = Len(RTF.Text)
        .SelIndent = Margins
        .SelStart = 0
        .Visible = True
   End With
End Sub
il margine dx dovrebbe essere settabile dalle proprieta'.
hth, j.

Grazie mille.


 stesso della cassella.  In VB è possibile questo ????
    Che io sappia, te lo devi fare "a manina". Per esempio con un controllo
grafico (tipo Shape) ed una TextBox (senza bordo) sovrapposti...
--
Ciao.
Maurizio
--------
?SPQR(C)
 X
--------