PDA

View Full Version : سوال: ایراد این دو خط کد کجاست



docendo
چهارشنبه 27 دی 1391, 21:28 عصر
با این دو خط کد تکست باکس را از کمبو باکس راست به چپ میکنیم واما چرا دوباره به حالت قبلی برنمیگردد


if ( combobox.SelectedText != "Persian")
{
this.textbox.RightToLeft = RightToLeft.Yes;

}
else
this.textbox.RightToLeft = RightToLeft.No;



و اگر بخواهیم SelectedText های عربی و اوردو و عبری هم اضافه کنیم چکار باید بکنیم
البته میشه از 4 تا if بکار برد ولی خوب نیست

saied_hacker
چهارشنبه 27 دی 1391, 21:41 عصر
if (combobox.SelectedItem.ToString() != "Persian")
{
this.textbox.RightToLeft = RightToLeft.Yes;
}
else
this.textbox.RightToLeft = RightToLeft.No;
سوال دوم رو نمی فهمم ؟؟؟

اگه منظورت اینه که تعداد if هات زیاد نشه بهترین راه switch هس:
string s = comboBox1.SelectedItem.ToString();
switch (s)
{
case "persian":
case "arabic":
case "ooooo":
{
// right to left
break;
}
case "english":
{
// left to right
break;
}
}

danialafshari
چهارشنبه 27 دی 1391, 21:48 عصر
سلام
بفرمائید :

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (comboBox1.Text == "Persian")
{
textBox1.RightToLeft = RightToLeft.Yes;
}
else
{
textBox1.RightToLeft = RightToLeft.No;
}
}

docendo
چهارشنبه 27 دی 1391, 21:56 عصر
با درود
در یک کمبو باکس حدود 90 تا زبان کشورها نوشته شده است از بین آنها چند تا زبان مانند فارسی عربی و عبری و اردو از راست به چپ نوشته میشوند
حال وقتی فارسی یا مثلا اردو را کلیک میکنیم تکست باکس ما از راست به چپ شود و در حالت غیره از چپ به راست
میشه همین ها را با جملات شرطی if نوشت ولی نمیخواهم از جملات شرطی if استفاده کنم
درضمن اون دوخطی که نوشته ام تکست باکس در صورت انتخاب فارسی از راست به چپ میشود ولی اگر از فارسی به انگلیسی بپریم تکست باکس در همان حالت قبلی راست به چپ میماند که ایراد کد است
میخواهم وقتی غیر از فازسی آلمانی یا انگلیسی را انتخاب میکنیم تکست باکس از چپ به راست شود

danialafshari
چهارشنبه 27 دی 1391, 22:08 عصر
سلام دوست عزیز


تکست باکس در همان حالت قبلی راست به چپ میماند که ایراد کد است
این مشکل که با کدی که گذاشتم حل شد

از Else if می تونی استفاده کنی کارش همینه !
ولی Switch بهتر و راحت تره

در ضمن چون دو حالت بیشتر نداره خیلی راحت می تونی در یک خط چند شرط قرار بدی !
یا RTF هست یا نیست !

مثلا:
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (comboBox1.Text == "Persian" || comboBox1.Text == "Germany" || comboBox1.Text == "English")
{
textBox1.RightToLeft = RightToLeft.Yes;
}
else
{
textBox1.RightToLeft = RightToLeft.No;
}
}

به همین راحتی !
موفق باشی

reza_Nazem
چهارشنبه 27 دی 1391, 22:15 عصر
آیا combox به یک منبع داده Bind
شده است ؟

اگه اینطوریه : یک فیلد (خاصیت ) به منبع داده ات اضافه کن که مشخص میکنه زبان RTL یا LTR . بعد انتخاب زبان در combobox با مقدار اون فیلد می تونی نوع زبان رو بفهمی

docendo
چهارشنبه 27 دی 1391, 22:25 عصر
مرسی از دوستان
لطف کردید
متشکرم