با سلام
ببخشید اگر دیر جواب دادم کمی از لحاظ زمانی به مشکل برخورده بودم.
شما برای اینکه بتوانید یک ComboBox را کنترل کنید می توانید از ایونت ها(رخداد ها) استفاده کنید. رخداد هایی که می توانید استفاده کنید و من پیشنهادی می کنم ایونت Validating هست. این ایونت در همه کنترل های ویندوز فرم موجود می باشد. این کنترل زمانی فعال می شود که شما درحال ترک آن کنترل هستین، بعنوان مثال کاربر در تکست باکس متنی را تایپ کند و سپس به تکست باکس بعدی می رود، پس از پایان کار با تکست باکس اول و در زمان ترک تکست باکس اول این تابع اجرا می شود. خب تا الان متوجه شدیم که این رخداد چه وظیفه ای دارد، حالا باید کاربر را محدود کنیم که درصورتی که قوانین مارا رعایت نکرده است نتواند این کنترل را ترک کند. در این مثال کاربر اگر گزینه ای که انتخاب کند در ComboBox نباشد نمی تواند حتی برنامه رو ببندد!!! یعنی حتما باید بتواند درست انتخاب کند! اما چگونه متوجه شویم که درست انتخاب کرده است؟ هر آیتم در ComboBox یک اندیس دارد، این اندیس از 0 شروع می شود. پس اگر این اندیس درست باشد یعنی درست انتخاب کرده است و درصورتی که این اندیس کمتر از 0 باشد پس غلط انتخاب کرده است. اما چگونه کاربر را با این شرط کنترل کنیم؟؟ ما می توانیم با دستور e.Cancel=True در ایونت Validating کاربر را محدود به درست بودن شرط وادار کنیم!!! قطعه کد مورد نظر به شکل زیر است:
Private Sub ComboBox1_Validating(sender As System.Object, e As System.ComponentModel.CancelEventArgs) Handles ComboBox1.Validating
If (ComboBox1.SelectedIndex < 0) Then
e.Cancel = True
End If
End Sub