PDA

View Full Version : سوال: ایجاد Properties اختصاصی برای کامپوننت



hadi vafaii
پنج شنبه 02 بهمن 1393, 10:53 صبح
سلام عرض می کنم خدمت دوستان همونطور که میدونین هر ابزاری که روی فرم قرار میدیم یه سری Properti داره ،سوالم اینه که میشه properti دیگه ای برای کامپوننت هایی که می سازیم اضافه کنیم؟ و اگه آره چجوری؟

abdullah20
پنج شنبه 02 بهمن 1393, 13:20 عصر
فرض کنید یک لیبل روی کامپوننت دارید و میخواید یک خاصیت تکست برای تعریف کنید:

public string lblText {
set { lblTitle.Text = value; }
get { return lblTitle.Text; }
}

hadi vafaii
پنج شنبه 02 بهمن 1393, 13:40 عصر
خب حالا اگه بخوایم مثلا یه خاصیت اینجور تعریف کنیم که اگه مثلا گزینه persian رو انتخاب کرد تکست باکس فقط عبارت فارسی قبول کنه اما اگه english را انتخاب کرد انگلیسی رو قبول کنه چجوری باید انجام داد؟

abdullah20
پنج شنبه 02 بهمن 1393, 14:25 عصر
باید خصوصیت خودتون را به صورت لیستی پیاده سازی کنید

private Language Lan;
public enum Language
{
Persion,
English,
}


public Language SelectLaguage
{
get { return Lan; }
set
{
Lan = value;
SetLaguage();
}
}


protected void SetLaguage()
{
System.Globalization.CultureInfo language;
switch (Lan)
{
case Language.English:
language = new System.Globalization.CultureInfo("en-us");
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(language);


break;
case Language.Persion:
language = new System.Globalization.CultureInfo("fa-ir");
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(language);


break;


}
}

محمد آشتیانی
پنج شنبه 02 بهمن 1393, 15:02 عصر
سلام
به همون نمونه SmartTag ، یه پراپرتی language اضافه کردم ، نمونه برنامه رو چک کن

hadi vafaii
پنج شنبه 02 بهمن 1393, 17:11 عصر
اگه درست متوجه شده باشم ما یه متد مینویسیم و بعد اونو فراخوان میکنیم؟
اما یه مشکلی داره و اینه که نمیشه که کاربر رو ملزم کرد که فقط اون زبانی رو که برنامه نویس انتخاب کرده ملزم باشه از اون استفاده کنه و به راحتی میشه با alt shift دوباره زبان رو عوض کرد

محمد آشتیانی
پنج شنبه 02 بهمن 1393, 17:39 عصر
سلام
دوست عزیز ، وقتی شما زبان کنترل خودت رو (تو مثال بالا ، تکست باکس) فارسی تنظیم کنی ، حتی کاربر اگه زبان کیبورد رو با ALT + SHIFT عوض کنه ، نمیتونه چیزی وارد کنه
البته در مورد کپی و پیست کردن داستان فرق داره که اونو هم میشه کنترل کرد.


موفق باشید

hadi vafaii
پنج شنبه 02 بهمن 1393, 18:02 عصر
باید خصوصیت خودتون را به صورت لیستی پیاده سازی کنید

private Language Lan;
public enum Language
{
Persion,
English,
}


public Language SelectLaguage
{
get { return Lan; }
set
{
Lan = value;
SetLaguage();
}
}


protected void SetLaguage()
{
System.Globalization.CultureInfo language;
switch (Lan)
{
case Language.English:
language = new System.Globalization.CultureInfo("en-us");
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(language);


break;
case Language.Persion:
language = new System.Globalization.CultureInfo("fa-ir");
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(language);


break;


}
}

سلام مرسی که توجه کردین و جواب دادین اما منظور من این تایپیک بود