PDA

View Full Version : مبتدی: آیا مشکل دستور if هست؟



elnazii
سه شنبه 06 بهمن 1388, 16:01 عصر
دوستان من یک متغیر عمومی (karbar) تعریف کردم و می خوام وقتی کاربر وارد شده مدیر باشه قسمتی از منو رو براش فعال کنم . دستوراتو به شکل زیر نوشتم اما جواب نمی ده !error نمی ده اما قسمت مربوطه همونطور غیر فعال میمونه :متفکر:
در فرم login و توی رویداد دکمه ورود که پس از وارد کردن نوع کاربری زده می شه نوشتم :

karbar = addcmb1.SelectedItem.ToString()

در form_load هم نوشتم :

If karbar = "مدیر" Then
MenuStrip1.Items(0).Enabled = True
End If




addcmb1 هم یک combo box هست که توش نمی شه تایپ کرد و فقط از لیست آیتم هاش یکی انتخاب می شه که مدیر هم یکی از اون آیتم هاست.

Computer.Programmer
سه شنبه 06 بهمن 1388, 16:10 عصر
لطفا متن پیغام خطا رو بذارید اینجوری بهتر میشه کمکتون کرد


موفق باشید

ACorvinus
سه شنبه 06 بهمن 1388, 16:17 عصر
سلام.


Public User As String = Combobox.Text

If User = "مدیر" Then
'Commands
End If



اگر جواب نداد پس مطمئن باشین گزینه ای که از کمبو انتخاب میشه، "مدیر" نیست. شاید مثلا "مدیر " یا " مدیر" باشه!!!

elnazii
چهارشنبه 07 بهمن 1388, 20:28 عصر
جواب نداد :ناراحت:.
error نمیده اما قسمتی رو هم که می خوام فعال بشه فعال نمی شه

elnazii
چهارشنبه 07 بهمن 1388, 23:26 عصر
ببینید این تصاویر رو :
یک متغیر karbar توی یک ماژول عمومی تعریف کردم و بعد با مقداری که از combobox انتخاب می شه پرش می کنم . می خوام توی منوی فرم دیگه اگه از combo box مدیر انتخاب شده قسمت مدیدیت فعال بشه وگرنه غیر فعال بمونه(توجه : نوع کاربری من فقط 3 تا هست ):
http://i.imagehost.org/0668/soal4.jpg

ولی با اون کد فعال نشد . وقتی کرد رو به صورت شکل سمت چپی می نویسم فعال می شه و درست کار می کنه . اما سوال من اینه که چرا شکل سمت راستی جواب نمی ده و بی تاثیره ؟؟
http://f.imagehost.org/0548/soal44.jpg

ACorvinus
چهارشنبه 07 بهمن 1388, 23:29 عصر
سلام.

خوب قبل از اینکه ببینی برابر با مدیر هست یا نه، مقدار داخل اون متغیر رو در MessageBox قرار بده ببین مقدارش چیه؟!!!!

ACorvinus
چهارشنبه 07 بهمن 1388, 23:36 عصر
یه کار دیگه انجام بدین. شما در Form1 این کدهارو اضافه کنین:



Public Sub New(byval UserType As String)
if UserType = "مدیر" Then
'Commands
End If
End Sub



و در کلیک دکمه ورود اینجوری بنویسین:



Dim Frm As New Form1(Me.Combobox1.Text)
Frm.Show()

oggiii
چهارشنبه 07 بهمن 1388, 23:38 عصر
چرا از selectedindex استفاده نمی کنی ؟؟

oggiii
چهارشنبه 07 بهمن 1388, 23:47 عصر
از selectedindex استفاده کن مثلا واسه تو به ترتیب مدیر کارمند اعضا هست اولی ایندکس میشه صفر دومی 1 و سومی 2 هست
ببین تو میتونی این کارو انجام بدی که خیلی راحته


Dim index As Integer از نوع سراسری می تونی تعریفش کنی
index = ComboBox1.SelectedIndex

Select Case index
Case 0 : Form5.Show()
Form5.Activate()
Case 6 : Form1.Show()

Form1.Activate()
Case 1 : Form2.Show()
Form2.Activate()
End Select

Alghoochi
پنج شنبه 08 بهمن 1388, 00:11 صبح
می تونی یه نوع داده شمارشی تعریف کنی.


Private Enum Role As Byte
User
Employee
Manager
End Enum




Dim Role As Role
Role = ComboBox1.SelectedIndex
If Role = MainForm.Role.Manager Then
'Statements
End If

mmd2009
پنج شنبه 08 بهمن 1388, 03:00 صبح
به نظر من حالت readonly=true کن و این کدهارو تو قسمت دکمه بنویس






dim cmd as string = Combobox.text


if cmd="اعضا" then
menus1.items(0).enabled= true
end if

elnazii
پنج شنبه 08 بهمن 1388, 07:40 صبح
ممنون دوستان با selectIndex مشکلم حل شد :لبخندساده: . اما جای سواله که چرا با روشی که من می رفتم جواب نمی داد ؟:متفکر:

crazy Scientist
پنج شنبه 08 بهمن 1388, 18:07 عصر
از selectedindex استفاده کن مثلا واسه تو به ترتیب مدیر کارمند اعضا هست اولی ایندکس میشه صفر دومی 1 و سومی 2 هست
ببین تو میتونی این کارو انجام بدی که خیلی راحته


Dim index As Integer از نوع سراسری می تونی تعریفش کنی
index = ComboBox1.SelectedIndex

Select Case index
Case 0 : Form5.Show()
Form5.Activate()
Case 6 : Form1.Show()

Form1.Activate()
Case 1 : Form2.Show()
Form2.Activate()
End Select

مرسی واقعا خیلی به دردم خورد :تشویق::تشویق::تشویق:

ACorvinus
پنج شنبه 08 بهمن 1388, 19:41 عصر
کلا سوالتون منطقی نبود!!!

با همه روشهایی که دوستان گفتن باید جواب میداد!!!

Hossis
جمعه 09 بهمن 1388, 10:07 صبح
ممنون دوستان با selectIndex مشکلم حل شد :لبخندساده: . اما جای سواله که چرا با روشی که من می رفتم جواب نمی داد ؟:متفکر:
شاید از حروف یونیکد استفاده کردید که با هم تطبیق نمی کنه مثل حروف ی و ک

elnazii
جمعه 09 بهمن 1388, 10:42 صبح
شاید از حروف یونیکد استفاده کردید که با هم تطبیق نمی کنه مثل حروف ی و ک

می شه بیشتر توضیح بدید ؟"مدیر" حرف ی داره

jahanmanesh
جمعه 09 بهمن 1388, 23:22 عصر
سلام به نظر من به جاي selected item از combobox.text استفاده كني بهتره!
يا اينكه تو دستور if از combobox.items(0)="مدير" استفاده كن

Alghoochi
شنبه 10 بهمن 1388, 12:10 عصر
سلام به نظر من به جاي selected item از combobox.text استفاده كني بهتره!
يا اينكه تو دستور if از combobox.items(0)="مدير" استفاده كن
اگه پست های قبلی رو خونده باشید به نتیجه رسیدن و مشکل حل شد رفت.