PDA

View Full Version : سوال: ساخت خصوصیتی برای گرفتن زبان یک ملیت



ROSTAM2
شنبه 17 دی 1401, 21:13 عصر
سلام.
برای ایجاد یک خصوصیت مثل خصوصیت Language از Form باید از چه کلاس یا Enumeration ی استفاده کنیم یا اینکه باید خودمون یک Enumeration برای اون ایجاد کنیم؟!

154430

ROSTAM2
یک شنبه 18 دی 1401, 19:15 عصر
سلام به همه:

با کلاس CultureInfoConverter و استفاده از اتریبیوت TypeConverter برای خصوصیت می شه نام همه زبان ها رو داشت:

Private LanguageValue As Globalization.CultureInfo = Globalization.CultureInfo.CurrentCulture
<DefaultValue("en")>
<TypeConverter(GetType(CultureInfoConverter))>
Public Property Language() As Globalization.CultureInfo
Get
Return LanguageValue
End Get
Set(ByVal value As Globalization.CultureInfo)
LanguageValue = value
End Set
End Property


154438

اما DisplayName از CultureInfo برای نمایش داده شدن و گرفتن Name از اون برای خصوصیت بجز Editor از چه روش دیگه ای می شه استفاده کرد؟!

ROSTAM2
یک شنبه 25 دی 1401, 07:37 صبح
سلام مجدد.
من برای این مورد یک لیست کشویی سفارشی ساختم که قادر به نمایش عنوان Culture طبق خصوصیت DisplayValue هست:

Enum DisplayValues
DisplayName = 0
Name = 1
NativeName = 2
EnglishName = 3
End Enum


حالا اگر بخوام برای یک خصوصیت سفارشی مثل خصوصیت Language از پست شماره 2 این کار روبکنم و مقدار DisplayName برای زبان داشته باشم ومقدار برگشتی CultureInfo باشه باید از چه روشی استفاده کنم آیا؟

Mahmoud.Afrad
جمعه 30 دی 1401, 23:35 عصر
cultureinfo پراپرتی به اسم DisplayName دارد. پس لیست cultureinfo ها رو به کنترل(مثلا کمبوباکس) بدید و DisplayName کنترل رو برابر رشته "DisplayName" قرار بدید تا زبان ها نمایش داده بشه.
selecteditem از کمبوباکس ، ایتم انتخابیه که به نوع کلاس دیتاسورس(در اینجا cultureinfo) بایست cast کنید.