PDA

View Full Version : قرار دادن wild characters در يك enum



رافعی مهدی
جمعه 19 مهر 1387, 20:39 عصر
سلام
يك property از جنس enum دارم. ميخواهم وقتي اين property به پنجره ي properties اضافه ميشه در اون مقادير ثابتي مثل : يا / يا \ يا ... نمايش داده بشه. ولي در enum مربوطه نتونستم اين كاراكترها رو بعنوان ليست ثوابت بكار ببرم. مثلاً


public enum Separator
{
:,
/,
\,
|,
;
};

آيا راهي براي انجام اين كار وجود داره؟





SMRAH1
شنبه 20 مهر 1387, 07:12 صبح
یک راه حل کاری شبیه این است:

public enum es
{
Slash = '\\',
SemiColon = ';'
}

رافعی مهدی
شنبه 20 مهر 1387, 09:20 صبح
راه حل شما رو امتحان کردم. حتی بجای استفاده از char سعی کردم از string هم استفاده کنم ولی نشد!






SMRAH1
شنبه 20 مهر 1387, 12:09 عصر
دقیقا یعنی چی نشد؟خطا توس کامپایل یا ..
درضمن در COmboBox خصوصیات،عبارتSlash و SemiColon و .. رو نشون می ده.

ASKaffash
شنبه 20 مهر 1387, 14:23 عصر
سلام
نمیشود چون شمارنده ها انتخاب ها عددی هستند و رشته نمیتوانند باشد (به جز Char) این هم متن از Help درون MSDN :
The enum keyword is used to declare an enumeration, a distinct type that consists of a set of named
constants called the enumerator list. Every enumeration type has an underlying type, which can be any

integral type except

رافعی مهدی
شنبه 20 مهر 1387, 20:09 عصر
جناب SMRAH1
گذاشتن نام يك ثابت در enum به صورت '/' = Slash كمك چنداني نكرد و خواسته ي من رو برآورده نكرد. منظورم از اينكه گفتم نشد اينه كه در Combobox كاراكترهاي دلخواه نام برده نمايش داده نشدند. (اگر فقط مينوشتم slash و '/' = رو نميگذاشتم هم فرقي نداشت).
البته از پيشنهاد شما ممنونم چون با اين كار ديدم بهتره يه متد به شكل زير بنويسم


public Separator CharToSeparator<Separator>(char sep)
{
return (Separator)Enum.ToObject(typeof(Separator), sep);
}


كه كاراكتر جداكننده رو بگيره و مقدار متناظر enum رو برگردونه كه كمك خوبي بود.
اما همون طور كه از كد نوشته شده پيداست مي خواهم اين enum رو براي يك پراپرتي كه كاراكتر جدا كننده رو (مثلاً در يك ساعت نگار) تعيين ميكنه استفاده كنم. در واقع اگر در combobox بجاي عباراتي مثل Colon ، Semicolon ، Slash و ... نوشته بشه : ، ; ، / و ... خيلي كار زيباتر و گوياتر خواهد بود.



جناب آقاي كفاش
سلام. از پاسخ شما بسيار ممنونم.



SMRAH1
یک شنبه 21 مهر 1387, 06:26 صبح
سلام

مطالبی توی MSDN بدست آوردم و اینو ساختم.

MSDN : How to: Create a Windows Forms Control That Takes Advantage of Design-Time Features

رافعی مهدی
چهارشنبه 24 مهر 1387, 19:44 عصر
سلام
كار فوق العاده اي كردي! بازم ممنونم.



SMRAH1
پنج شنبه 25 مهر 1387, 06:34 صبح
البته ایراد هایی داره که انشاءا.. روش کار کنید و بعدش به ما هم بدید.:لبخند: