PDA

View Full Version : سوال: لطفاً این شرط رو بررسی کنین که چرا کار نمیکنه؟!



hadimtn
دوشنبه 05 مرداد 1394, 15:30 عصر
سلام؛ لطفاً شرط زیر رو بررسی کنین:

void Test1(Control f)
{
if(f is TextBox && f.Text == "")
MessageBox.Show(" Control is TextBox & Empty ");
else if (f is TextBox && f.Text != "")
{
MessageBox.Show("Done!");
}
}


private void button1_Click(object sender, EventArgs e)
{
Test1(this);
}

میخوام وقتی کنترل، "جعبه‌ی متن" بود و خالی نبود، یک عملیات خاص انجام بدم در غیر اینصورت عمل دیگه ای رو انجام بدم!

[ همین شرط رو با عملیات دیگه ای پیاده میکنم که کار نمیکنه! عملیات اصلی مربوط به نمایش errorProvider هستش! ]
چرا این شرط کار نمیکنه؟! :افسرده:

RmeXXXXXXXXX
دوشنبه 05 مرداد 1394, 15:37 عصر
اینو امتحان کنید بهینه تر است

if(f is TextBox)
if(string.IsEmptyNullWhiteSpace(f.Text))
mbox("f is empty");
else mbox("f have something");

دقیقتر بفرمائید: جواب نمیده یعنی هیچ کاری نمیکنه یا فقط یه قسمتش کار میکنه. لطفاً قطعه کدی که این متد رو فراخوانی میکنه رو هم بنویسید.

hamid_hr
دوشنبه 05 مرداد 1394, 15:37 عصر
خب نوشتین
Test1(this);
باید یه textbox بفرستین به تابع

hadimtn
دوشنبه 05 مرداد 1394, 16:25 عصر
دقیقتر بفرمائید: جواب نمیده یعنی هیچ کاری نمیکنه یا فقط یه قسمتش کار میکنه.
کد شما رو هم امتحان کردم!
کلا هیچ عکس العملی نشون نمیده!!!


لطفاً قطعه کدی که این متد رو فراخوانی میکنه رو هم بنویسید.

تو همون button1_Click فراخوانی شده دیگه!

در ضمن متد IsEmptyNullWhiteSpace وجود نداره، با IsNullWhiteSpace بررسی کردم!

hadimtn
دوشنبه 05 مرداد 1394, 16:26 عصر
خب نوشتین
Test1(this);
باید یه textbox بفرستین به تابع
برای سه تا کنترل textBox, richTextBox و comboBox باید بررسی کنم!
در ضمن برای راحتی کار اومدم این متد رو نوشتم ممکنه فرم من بیست تا textBox داشته باشه، همه رو باید دونه دونه بفرستم به متد؟! :لبخند:

zayens
سه شنبه 06 مرداد 1394, 16:27 عصر
سلام؛ لطفاً شرط زیر رو بررسی کنین:

void Test1(Control f)
{
if(f is TextBox && f.Text == "")
MessageBox.Show(" Control is TextBox & Empty ");
else if (f is TextBox && f.Text != "")
{
MessageBox.Show("Done!");
}
}


private void button1_Click(object sender, EventArgs e)
{
Test1(this);
}

:افسرده:

چرا this گذاشتین؟
بجاش ActiveControl رو بزارید

hadimtn
پنج شنبه 22 مرداد 1394, 03:42 صبح
چرا this گذاشتین؟
بجاش ActiveControl رو بزارید
this رو تو یه آموزش دیدم طبق اون گذاشتم! حالا مگه چه ایرادی داره؟!

ahmadreza.s
پنج شنبه 22 مرداد 1394, 07:47 صبح
this رو تو یه آموزش دیدم طبق اون گذاشتم! حالا مگه چه ایرادی داره؟!
سلام !
اشکال کارتون اونجایی که تابع رو فراخوانی کردید !
چون باید بجای مرجع this که به فورم جاری اشاره داره ، تکست باکستون رو قرار بدید !

مثلن اینجوری :

Test1(textBox1);