PDA

View Full Version : مشکل با Enum



arenaw
دوشنبه 12 تیر 1391, 18:17 عصر
سلام
این مشکی که الان دارم میگم رو میتونم جور دیگه حل کنم (با تعریف const و ...)
ولی میخوام از همین روش استفاده کنم چون منطقی تره:

مقدار back color یوزر کنترل من باید یه مقدار هایی ثابتی داشته باشه که از enum استفاده کردم:

Enum enmBackColor
[0] = &H0&
[1] = &HFFFFFF
[2] = &H80000002
[3] = &HC0&
[4] = &H8000&
[5] = &HFFFF&
[6] = &HC000C0
[7] = &H808000
End Enum


حالا داخل فرم میخوام وقتی روی مثلا دکمه ای که ایندکسش بین 0 تا 7 هست کلیک شد اون مقدار برای back color اون کنترل استفاده بشه
اما ازین سه تا روش نمیشه استفاده کرد:

Private Sub mnuFieldSubColor_Click(Index As Integer)
Field(CurField).BackColor = Index 'in faghat meghadare 0 ro mirize tush
Field(CurField).BackColor = [Index] 'in ham hamintor
Field(CurField).BackColor = "[" & Index & "]" 'in ke aslan erore nahamahangie meghdaro mide ke hagh dare khob!
End Sub


اینم بگم نمیخوام ازنوع integer باشه کاربر ندونه عددی که میده چه رنگیه
(البته اینطوریم نمیبینه ، ولی قبلش تو enum اسم رنگارو هم نوشتم، جواب نداد گفتم شاید اینطور بشه درست بشه که بازم نشد)


امیدوارم متوجه شده باشید منظورمو چون کمی گیج کننده هست

محسن واژدی
دوشنبه 12 تیر 1391, 23:04 عصر
سلام علیکم
نمیتوانیم به اعضای Enum همانند آرایه ها دسترسی پیدا کنیم، به عبارتی Indexیی که مساوی BackColor قرار میگیرد به عنوان یک مقدار واقعی به آن اختصاص میابد نه به عنوان عضوی از آن Enum یعنی وقتی BackColor=1مقدار دهی میشود یعنی BackColor دارای مقدار فعلی 1 است، و نه برابر مقدار عضو [1] از BackColor یعنی &HFFFFFF
برای استفاده از Enum به اینصورت در دکمه های آرایه میتوانیم از شرطها استفاده کنیم

موفق باشید

arenaw
سه شنبه 13 تیر 1391, 00:47 صبح
سلام علیکم
نمیتوانیم به اعضای Enum همانند آرایه ها دسترسی پیدا کنیم، به عبارتی Indexیی که مساوی BackColor قرار میگیرد به عنوان یک مقدار واقعی به آن اختصاص میابد نه به عنوان عضوی از آن Enum یعنی وقتی BackColor=1مقدار دهی میشود یعنی BackColor دارای مقدار فعلی 1 است، و نه برابر مقدار عضو [1] از BackColor یعنی &HFFFFFF
برای استفاده از Enum به اینصورت در دکمه های آرایه میتوانیم از شرطها استفاده کنیم

موفق باشید
ممنون از راهنماییتون همینکارو کردم آخرشم