PDA

View Full Version : focase textbox



msh_gold
چهارشنبه 13 شهریور 1387, 05:47 صبح
با سلام من مي خوام تو برنامم كه تعداد زيادي textbox دارم زماني كه در textbox هام مقدار وارد كردم اگه دوباره يكي از textbox هام focase شد تمام متن داخل اون انتخاب بشه (به رنگ آبي در بياد)و بدون پاك كردن داده جديد جايگزين اون بشه .با تشكر

mostafaaa
چهارشنبه 13 شهریور 1387, 09:19 صبح
میتونی با استفاده از AddHandler توی RunTime این کار رو انجام بدی.

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
For Each ctrl As Control In Me.Controls
If TypeOf ctrl Is TextBox Then AddHandler ctrl.GotFocus, AddressOf SelectAllText
Next
End Sub
Private Sub SelectAllText(ByVal sender As TextBox, ByVal e As EventArgs)
sender.SelectAll()
End Sub

msh_gold
پنج شنبه 14 شهریور 1387, 05:09 صبح
با سلام آقا mostafa با تشكر از توجهتون ولي اين كد روي آرگومان e از تابع selectalltext خطا ميده.argument not specified for parameter of selectAlltext

mehrnoosh_al62
پنج شنبه 14 شهریور 1387, 08:42 صبح
با تابع زیر میتونی با enter بین تکست باکس ها حرکت کنی و با کلید Up به عقب برگردی در هر دو حالت تمامی متنت به صورت انتخاب شده در میاد و بدون اینکه پاکش کنی میتونی تغییرش بدی...


Protected Overloads Overrides Function ProcessCmdKey(ByRef msg As Message, ByVal keyData As Keys) As Boolean
If msg.Msg = 256 Then
Select Case keyData
Case Keys.Enter
Me.SelectNextControl(Me.ActiveControl, True, True, True, False)
If TypeOf Me.ActiveControl Is TextBox Then
DirectCast(Me.ActiveControl, TextBox).SelectAll()
End If
Return True
Case Keys.Up
Me.SelectNextControl(Me.ActiveControl, False, True, True, False)
If TypeOf Me.ActiveControl Is TextBox Then
DirectCast(Me.ActiveControl, TextBox).SelectAll()
End If
Return True
End Select
End If
Return MyBase.ProcessCmdKey(msg, keyData)
End Function

mostafaaa
پنج شنبه 14 شهریور 1387, 09:14 صبح
با سلام آقا mostafa با تشكر از توجهتون ولي اين كد روي آرگومان e از تابع selectalltext خطا ميده.argument not specified for parameter of selectAlltext
من همین الان دوباره با FreamWork 2 هم تستش کردم ، هیچ مشکلی نداره و به درستی کار میکنه.

msh_gold
جمعه 15 شهریور 1387, 04:43 صبح
با سلام آقا مصطفي از خيلي ممنونم .كد شما رو من تونستم درشتش كنم ولي اگه چند تا groupbox توي فرمت باشه ديگه جواب نمي ده من حتي براي تك ك groupbx هام هم نوشتم ولي جواب نداد .mehrnosh از شما بخاطر كدتون تشكر مي كنم ولي ميشه براي ما تازه كارا يه خورده توضيح بديد كه چطوري كار مي كنه. با تشكر از همه:تشویق:

msh_gold
جمعه 15 شهریور 1387, 14:02 عصر
ببخشيد من به يه مشكل ديگه برخوردم من مي خوام وقتي يهbutton فعال ميشه رويداد كليكش فراخواني بشه ولي اين ميره به كنترل بعدي من خيلي دست كاريش كردم ولي نتونستم درستش كنم.لطفا كمك كنيد. با تشكر

mostafaaa
جمعه 15 شهریور 1387, 22:13 عصر
با سلام آقا مصطفي از خيلي ممنونم .كد شما رو من تونستم درشتش كنم ولي اگه چند تا groupbox توي فرمت باشه ديگه جواب نمي ده من حتي براي تك ك groupbx هام هم نوشتم ولي جواب نداد .mehrnosh از شما بخاطر كدتون تشكر مي كنم ولي ميشه براي ما تازه كارا يه خورده توضيح بديد كه چطوري كار مي كنه. با تشكر از همه:تشویق:
برای اینکه GroupBox خودش یه ControlContainer هستش باید حلقه Fore Each رو به شکل زیر تغییر بدی

For Each ctrl As Control In Me.GroupBox1.Controls
.
.
.
Next

msh_gold
شنبه 16 شهریور 1387, 05:21 صبح
آقا مصطفي خيلي ممنون اگه يه لطفي كني و كد جناب mehrnoosh رو براي button اصلاح كنيد.ممنون ميشم.چون تو برنامه من بحث groupboxهاي تو در تو پيش مياد كه اونم باز يه مشكل ديگست.با تشكر

mostafaaa
شنبه 16 شهریور 1387, 10:02 صبح
آقا مصطفي خيلي ممنون اگه يه لطفي كني و كد جناب mehrnoosh رو براي button اصلاح كنيد.ممنون ميشم.چون تو برنامه من بحث groupboxهاي تو در تو پيش مياد كه اونم باز يه مشكل ديگست.با تشكر
اگه میخوای از اون کد استفاده کنی به این شکل استفاده کن

Protected Overloads Overrides Function ProcessCmdKey(ByRef msg As Message, ByVal keyData As Keys) As Boolean
If keyData = Keys.Enter And Me.ActiveControl IsNot Nothing And TypeOf Me.ActiveControl Is TextBox Then
DirectCast(Me.ActiveControl, TextBox).SelectAll()
SelectNextControl(Me.ActiveControl, True, True, True, True)
Return True
End If
Return MyBase.ProcessCmdKey(msg, keyData)
End Function