PDA

View Full Version : کار با errorprovider



programerinfonet
یک شنبه 20 مرداد 1392, 15:47 عصر
سلام دوستان
من تو رویداد Validating کنترل هایی که میخوام خالی نباشن دستور ست کردن خطای errorprovider رو نوشتم
حالا چه طوری بگم که وقتی روی دکمه ی افزودن کلیک کردم اگه اون کادرها خالی بود همون ERRORPROVIDER که نمایان میشه هیچ عمل ذخیره صورت نگیره و زمانی که پر شد ذخیره انجام بشه
؟؟؟

parvizwpf
یک شنبه 20 مرداد 1392, 17:52 عصر
بالاخره یه جایی یه منطق true false برقرار میشه خب همونجا میتونید بگید. کد بزارید

malizergani
یک شنبه 20 مرداد 1392, 17:57 عصر
سلام دوست عزیز

private void textBox1_TextChanged(object sender, EventArgs e)
{
if (textBox1.TextLength == 0)
errorProvider1.SetError(textBox1, "لطفاً نام خود را وارد نمائید");
else
errorProvider1.Clear();
}

programerinfonet
یک شنبه 20 مرداد 1392, 19:53 عصر
سلام دوست عزیز

private void textBox1_TextChanged(object sender, EventArgs e)
{
if (textBox1.TextLength == 0)
errorProvider1.SetError(textBox1, "لطفاً نام خود را وارد نمائید");
else
errorProvider1.Clear();
}
دوست عزیز اگه به سوالم دقت کرده باشی گفتم این جاشو نوشتم
اما چه طوری بگم که اگه قسمت هایی که errorprovider روش حساسه تا زمانی که پر نشده عمل ذخیره انجام نشه
این کدو میخوام تو دکمه ذخیرم بنویسم
بگم اگه اون فیلدهایی که errorprovider خواسته باید تکمیل باشه
نمیخوام اسم کنترل ها رو یکی یکی بدم زیادن

parvizwpf
یک شنبه 20 مرداد 1392, 19:57 عصر
شما یه متد میسازی که تمام ارورها بررسی میشه و تا ترو نشه پس دکمه شما هم دیگه اجرا نمیشه. میگم یه منطق کلی دارید مثلا فلا کنترل خالیه پس فالس بعدی پره ترو در کل میشه فالس پس دکمه چیزی اجرا نمیکنه متجه میشید؟

khokhan
یک شنبه 20 مرداد 1392, 20:20 عصر
ما چه طوری بگم که اگه قسمت هایی که errorprovider روش حساسه تا زمانی که پر نشده عمل ذخیره انجام نشه
این کدو میخوام تو دکمه ذخیرم بنویسم
if (string.IsNullOrEmpty(txt_name.Text) || string.IsNullOrEmpty(txt_fname.Text))
{
//ارور
}
else
{

//دستورات ثبت اطلاعات

}

ویا


bool notEmpty = false;

foreach (Control c in this.Controls)
{
if (c is TextBox)
{
if (!String.IsNullOrEmpty(c.Text))
notEmpty = true;
//ارور
break;
}
}

if (notEmpty)
{
//ثبت
}

drstrike
یک شنبه 20 مرداد 1392, 21:32 عصر
دوست عزیز اگه به سوالم دقت کرده باشی گفتم این جاشو نوشتم
اما چه طوری بگم که اگه قسمت هایی که errorprovider روش حساسه تا زمانی که پر نشده عمل ذخیره انجام نشه
این کدو میخوام تو دکمه ذخیرم بنویسم
بگم اگه اون فیلدهایی که errorprovider خواسته باید تکمیل باشه
نمیخوام اسم کنترل ها رو یکی یکی بدم زیادن

قبل از عملیات ذخیره تمام کنترل هایی که مقدارشون ضروری هست رو بررسی کنید خالی نباشند. نمونه کد:

var requireFields = new List<Control>{textBox1, textbox2, comboBox1};
var emptyControl = Control.FirstOrDefault(p => string.NullOrEmpty(p.Text));

if (emptyControl != null)
{
errorPrivider.SetError(emptyControl, "این فیلد ضروری است!");
emptyControl.Select();

return;
}


برای اجرای کد فوق فضای نام System.Linq باید use شده باشد.
این یک نمونه کد هست، خودتون هم می تونید اون رو توسعه بدید و به روش بهتر و در موراد دیگر هم ازش استفاده کنید