PDA

View Full Version : سوال: انتخاب یک ComboBox از میان چند ComboBox



picpars
دوشنبه 24 بهمن 1390, 11:29 صبح
با سلام خدمت دوستان عزیز
آقا ما 3 تا ComboBox داریم، ComboBox1 و ComboBox2 و ComboBox3 حالا میخوام از بین اینها مثلا ComboBox2 رو انتخاب کنم و مثلا رنگ پس زمینه اون عوض کنیم که البته باید به صورت تابع باشه مانند:

Private Sub ComboBox_chang(ByVal combosel As Integer, ByVal itemsel As Integer)

End Sub
حالا من با استفاد از تابع ComboBox_chang(2,5) آیتم پنجم از ComboBox2 رو انتخاب کنم و به عنوان مثال BackColor اونو تغییر بدم.

امیدوارم منظورم منو متوجه شده باشید. نکته مهم این که حتما باید به صورت تابع باشه چون اینجا من برای 3 تا مثل زدم و ممکن تا 10 تا هم باشه.

با تشکر:لبخندساده:

Hybrid
دوشنبه 24 بهمن 1390, 12:01 عصر
سلام ،

خداییش خیلی بد توضیح دادی ! یه کم واضحتر توضیح بده تا راهنمایی کنم.

picpars
دوشنبه 24 بهمن 1390, 12:17 عصر
ببین ما یک تابع به نام ComboBox_chang ایجاد میکنم که این تابع دارای 2 ورودی عدد است. پارامتر اول combosel می باشد توسط عددی که توی این متغیر هست ما باید ComboBox رو انتخاب کنیم. پارامتر دوم itemsel هست و عددی که توی این متغیر قرار میگیره آیتم مربوط به ComboBox انتخاب شده رو انتخاب میکنه.
حالا مثلا وقتی combosel=2 و itemsel=5 باید از بین ComboBox ها اونی انتخاب بشه که Name اون مقدار ComboBox2 داره. و حالا از بین آیتم های این ComboBox2 آیتم 5 رنگ شو BackColor عوض کنیم.
امیدوارم متوجه قضیه شده باشید...

Hybrid
دوشنبه 24 بهمن 1390, 12:30 عصر
سوالت جالب و خیلی ساده هست : از تابع زیر استفاده کن : ((تا الان ندیدم از طریق خصوصیات عادی combo رنگ item بخصوصی رو تغییر بدن ، امکانپذیر هست ولی یه کم طولانیه! ))



Private Sub ChangeItemColor(ByVal WhichCombo As ComboBox, ByVal item As Integer)
WhichCombo.SelectedIndex = item
End Sub


نمون کدی برای نحوه ی فراخوانی :

ChangeItemColor(ComboBox1, 2)


موفق باشید./

picpars
دوشنبه 24 بهمن 1390, 13:46 عصر
اون چیزی که من میخواستم نبود ولی بازهم خوبه. دستت درد نکنه راهنمایی خوبی بود.
هدف اصلی من این بود که در ChangeItemColor(ComboBox1, 2) بجای ComboBox1 عدد صحیح 1 بزاریم

فرید نجفلو
دوشنبه 24 بهمن 1390, 13:56 عصر
من منظور شما رو فهمیدم
ولی این روش رو به هیچ وجه توصیه نمی کنم
به هر حال از کد زیر استفاده کنید:



CType(Me.Controls("ComboBox" & combosel), ComboBox).BackColor = Color.Red

picpars
دوشنبه 24 بهمن 1390, 13:57 عصر
حالا یه سوال؟ combosel As ComboBox تعریف شده برای استفاده از دستورات If یا Select Case چطوری باید متغییر combosel رو مورد ارزیابی قرار داد؟ مثلا میخوایم تعریف کنم اگر combose= ComboBox1 فلان دستورات رو اجرا کن ولی متاسفانه چون نوع اون ComboBox هست برای ارزیابی چه با If و یا Select Caseخطا میگره؟
میشه در این مورد یه راهنمایی کنید

picpars
دوشنبه 24 بهمن 1390, 14:37 عصر
من منظور شما رو فهمیدم
ولی این روش رو به هیچ وجه توصیه نمی کنم
به هر حال از کد زیر استفاده کنید:



CType(Me.Controls("ComboBox" & combosel), ComboBox).BackColor = Color.Red


آقا دمت گرم به اون چیزی که خواستم رسیدم ممنون :چشمک:
CType(Me.GroupBox1.Controls("ComboBox" & combosel), ComboBox).BackColor = Color.FromName(res_bund_color_code(itemsel))

فرید نجفلو
دوشنبه 24 بهمن 1390, 15:14 عصر
حالا یه سوال؟ combosel As ComboBox تعریف شده برای استفاده از دستورات If یا Select Case چطوری باید متغییر combosel رو مورد ارزیابی قرار داد؟ مثلا میخوایم تعریف کنم اگر combose= ComboBox1 فلان دستورات رو اجرا کن ولی متاسفانه چون نوع اون ComboBox هست برای ارزیابی چه با If و یا Select Caseخطا میگره؟
میشه در این مورد یه راهنمایی کنید


شما باز می تونید از همون دستور استفاده کنید:
Dim tmpCmb=CType(Me.Controls("ComboBox" & combosel), ComboBox)
If ComboBox1.Equal(tmpCmb) Then
'Do any thing
End If