PDA

View Full Version : چاپ متن بر روی فرم



mohsenaminzare
جمعه 12 مهر 1387, 14:16 عصر
با سلام
در vb6 با دستور print بر روی فرم می تونستیم بنویسیم در دات نت این امکان وجود داره ؟ می خوام از بانک، اطلاعات رو بخونم بعد بر روی فرم بنویسم در ضمن اگر یک خط تمام شد به طور اتوماتیک به خط بعد بره .
با تشکر

mohsenaminzare
جمعه 12 مهر 1387, 21:11 عصر
پیدا کردم ! به صورت زیر می تونیم در دات نت متنی رو بر روی فرم در جای دلخواه بنویسیم:


Private Sub Form1_Paint(ByVal sender As Object, ByVal e As system.Windows.Forms.PaintEventArgs) Handles Me.Paint


Dim font As New System.Drawing.Font("tahoma", 14, FontStyle.Regular)
e.Graphics.DrawString("متن نمونه", font, Brushes.Black, 50, 50)
End Sub


فقط الان یک مشکل هست این که اگر متن فارسی باشه مشکل دارم.چون می خوام از بانک خونده شه و بر روی فرم بنویسه که دیگه با خاصیت right to left نمی شه ؟

rooshan2008
جمعه 12 مهر 1387, 23:37 عصر
سلام
روی فرم خودت 2 تا دکمه و یه تست باکس بزار....
فکر کنم این کد کارت رو راه بندازه البته من از بانک نخوندم ولی کاری شبیه اون انجام دادم.


PublicClass Form1
Dim Lb AsNew Label
Dim G As Graphics
Dim font AsNew System.Drawing.Font("tahoma", 14, FontStyle.Regular)
Dim X1, y1 AsInteger
Dim StartX AsInteger

داخل فرم لود

PrivateSub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase.Load
Me.RightToLeft = Windows.Forms.RightToLeft.Yes
G = Me.CreateGraphics
Me.Width = Me.Width
Lb.Hide()
EndSub

داخل کلیک دکمه

PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Lb.Text += TextBox1.Text
Lb.Font = font
Lb.Parent = Me
Lb.AutoSize = True
X1 = Lb.Width
If X1 > Me.Width Then
Lb.Text = TextBox1.Text
X1 = (Me.Width - Lb.Width)
y1 += Lb.Height
Else
X1 = (Me.Width - X1)
EndIf
IfMe.RightToLeft = Windows.Forms.RightToLeft.Yes Then
G.DrawString(TextBox1.Text, font, Brushes.Black, X1, y1)
EndIf
EndSub

دکمه

PrivateSub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
X1 = Me.Width
y1 = 0
G.Clear(Me.BackColor)
EndSub
EndClass

موفق باشی.