PDA

View Full Version : سوال: مشکل با حرکت تکست باکس روی فرم در زمان اجرا



farzan_219
جمعه 20 شهریور 1394, 14:09 عصر
سلام
مشکلم اینکه من تو فرمم یه تکست باکس دارم که در زمان اجرا وقتی توش تایپ میکنی اندازش بزرگ میشه
ولی از چپ به راست بزرگ میشه و برای اینکه از راست به چپ بزگ بشه باید خاصیت های right to left و layout right to left
فرم رو برابر true قرار بدم ولی با اینکار حرکت دادن تکست باکس روی فرم در زمان اجرا به کل مختل میشه لطفا راهنمایی کنید
اینم نمونه سورس هاش.








Private xPosition As Integer





Private yPosition As Integer





Private candrag As Boolean = False
Private
Sub TextBox1_MouseDown(sender As Object, e As MouseEventArgs) Handles TextBox1.MouseDown


xPosition = e.X
yPosition = e.Y
candrag =
True



End Sub




Private Sub TextBox1_MouseMove(sender As Object, e As MouseEventArgs) Handles TextBox1.MouseMove



If candrag Then



Me.TextBox1.Left += e.Y - yPosition



Me.TextBox1.Top += e.X - xPosition









End If



End Sub




Private Sub TextBox1_MouseUp(sender As Object, e As MouseEventArgs) Handles TextBox1.MouseUp


candrag =
False



End Sub





Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged



Dim sizee As Size = TextRenderer.MeasureText(TextBox1.Text, fd_text.Font)


TextBox1.Width = sizee.Width
TextBox1.Height = sizee.Height

End Sub

farzan_219
شنبه 21 شهریور 1394, 23:40 عصر
سلام دوستان مشکلو حل کردم با عوض کردن علامتها در قسمت X ها کدشم براتون میذارم.

Private xPosition AsInteger


Private yPosition AsInteger


Private candrag AsBoolean = False

Private
Sub TextBox1_MouseDown(sender AsObject, e AsMouseEventArgs) Handles TextBox1.MouseDown



xPosition = -e.X
yPosition = e.Y



candrag=True


EndSub




PrivateSub TextBox1_MouseMove(sender AsObject, e AsMouseEventArgs) Handles TextBox1.MouseMove


If candrag Then


Me.TextBox1.Left -= e.X + xPosition


Me.TextBox1.Top += e.Y - yPosition





EndIf


EndSub




PrivateSub TextBox1_MouseUp(sender AsObject, e AsMouseEventArgs) Handles TextBox1.MouseUp



candrag =

False


EndSub









PrivateSub TextBox1_TextChanged(sender AsObject, e AsEventArgs) Handles TextBox1.TextChanged


Dim sizee AsSize = TextRenderer.MeasureText(TextBox1.Text, fd_text.Font)



TextBox1.Width = sizee.Width

TextBox1.Height = sizee.Height



EndSub