PDA

View Full Version : سوال: سوال در خصوص اعمال تغییرات بر روی کنترلهای فرم



hrj1981
پنج شنبه 23 اردیبهشت 1395, 11:44 صبح
با درود
دوستان دو سه تا سوال مبتدی داشتم ممنون میشم راهنمایی کنید
1.من می خواستم با یک کلید همه کنترلهای روی فرم تکستشون خالی بشه ، راه حلشو پیدا کردم اما به یک نکته ای برخورد کردم که گیر کار من هم همونجاست .اگر کنترلها مستقیم روی فرم باشه میشه با me.controls این کار رو کرد ، اما اگر کنترلها رو داخل یک پنل یا گروپ باکس گذاشته باشید حتما باید نام اون پنل رو به جای me بذارید تا تغییرات روی کنترلها اعمال بشه ، میخواستم بدون اره حلی دوستان براش دارند که ارائه کنند.

2.سوال دومم در خصوص کمبو باکس بود ، میخواستم وقتی از لیست dropdown یک عبارت رو انتخاب کنم همزمان Value متناظر اون هم داخل یک تکست باکس بیفته ، اما وقتی از selectValue استفاده میکنم Value رو با یک گام جلوتر انتخاب میکنه و یا کلا در بعضی وقتها اشتباه عمل میکنه .

3.سوال سومم در خصوص کنترل Textmask بود . وقتی دستور پاک کردن مقدار قبلی رو برای این کنترل ارسال میکنم تغییری روش اعمال نمیشه

ممنون از راهنمایی دوستان

gilsoft
شنبه 25 اردیبهشت 1395, 06:59 صبح
1.من می خواستم با یک کلید همه کنترلهای روی فرم تکستشون خالی بشه ، راه حلشو پیدا کردم اما به یک نکته ای برخورد کردم که گیر کار من هم همونجاست .اگر کنترلها مستقیم روی فرم باشه میشه با me.controls این کار رو کرد ، اما اگر کنترلها رو داخل یک پنل یا گروپ باکس گذاشته باشید حتما باید نام اون پنل رو به جای me بذارید تا تغییرات روی کنترلها اعمال بشه ، میخواستم بدون اره حلی دوستان براش دارند که ارائه کنند.

سلام دوست عزیز

این جواب سئوال 1:
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
For Each ctrl In Me.Controls
If (TypeOf ctrl Is GroupBox) Or (TypeOf ctrl Is Panel) Then ClearTextBox(ctrl)
Next
End Sub

Sub ClearTextBox(Ctrl As Control)
For Each CC In Ctrl.Controls
If TypeOf CC Is TextBox Then CC.text = ""
Next
End Sub
موفق باشید .....

gilsoft
شنبه 25 اردیبهشت 1395, 07:16 صبح
2.سوال دومم در خصوص کمبو باکس بود ، میخواستم وقتی از لیست dropdown یک عبارت رو انتخاب کنم همزمان Value متناظر اون هم داخل یک تکست باکس بیفته ، اما وقتی از selectValue استفاده میکنم Value رو با یک گام جلوتر انتخاب میکنه و یا کلا در بعضی وقتها اشتباه عمل میکنه .

سلام مجدد

اینم جواب سئوا 2:
Private Sub Form2_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
With ComboBox1
.Items.Clear()
.Items.AddRange(New Object() {"qwe", "asd", "zxc", "rty", "fgh", "vbn"})
.DropDownStyle = ComboBoxStyle.DropDownList
End With
End Sub

Private Sub ComboBox1_SelectedValueChanged(sender As Object, e As System.EventArgs) Handles ComboBox1.SelectedValueChanged
If ComboBox1.SelectedIndex <> -1 Then
TextBox1.Text = ComboBox1.SelectedItem
End If
End Sub

اگه منظورت غیر از این بود باید نمونه کد بزاری

موفق باشید .....

gilsoft
شنبه 25 اردیبهشت 1395, 07:22 صبح
3.سوال سومم در خصوص کنترل Textmask بود . وقتی دستور پاک کردن مقدار قبلی رو برای این کنترل ارسال میکنم تغییری روش اعمال نمیشه

سلام مجدد:
اینم جواب سئوال 3:
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
MaskedTextBox1.Clear()
End Sub

اگه غیر این بود .. باید نمونه کد بزاری

موفق باشید .....

hrj1981
سه شنبه 28 اردیبهشت 1395, 21:59 عصر
با تشکر از پاسخ دوست عزیز
اما یک نکته ای در خصوص کنترل MaskedTextBox هستش ، شما وقتی میخواهید با یک کلید کل تکست کنترلهای موجود بروی فرم رو پاک کنید اونها را داخل یه حلقه For each میذارید و انجام میدید ، تو خاصیت لوکال کنترلها گزینه clear وجود نداره که بشه اون را داخل حلقه For فراخونی کردو کنترل های MaskedTextBox را ریسیت کرد
ممنون میشم اگر راهنمایی کنید

hrj1981
چهارشنبه 29 اردیبهشت 1395, 09:52 صبح
با تشکر از پاسخ دوست عزیز
اما یک نکته ای در خصوص کنترل MaskedTextBox هستش ، شما وقتی میخواهید با یک کلید کل تکست کنترلهای موجود بروی فرم رو پاک کنید اونها را داخل یه حلقه For each میذارید و انجام میدید ، تو خاصیت لوکال کنترلها گزینه clear وجود نداره که بشه اون را داخل حلقه For فراخونی کردو کنترل های MaskedTextBox را ریسیت کرد
ممنون میشم اگر راهنمایی کنید
این مورد رو خودم اینطوری حلش کردم ، یک Sub نوشتم که پارامتر ورودیش کنترلی از نوع textmask باشه ، بعد تو For each هر وقت Typeof نوع کنترل رو از نوع textmask تشخیص داد کنترل رو به این Sub جدید پاس میده و تغییرات روش اعمال میشه
چون کنترل من از نوع تلریک بود sub به صورت زیر دراومد

Private Sub ClearRMEB(obj As Telerik.WinControls.UI.RadMaskedEditBox)
obj.Clear()
End Sub