PDA

View Full Version : سوال: غیرفعال کردن کنترلها با توجه به متن ComboBox



qwqw1364
جمعه 17 اردیبهشت 1395, 16:40 عصر
من 3تا گروپ باکس دارم و در هر گروپ باکس دو کمبو باکس ایجاد کردم
گروب باکس1 کمبوباکس1 کمبوباکس2

گروب باکس2 کمبوباکس3 کمبوباکس4

گروب باکس3 کمبوباکس5 کمبوباکس6
من فرمی بصورت بالا ایجاد کردم
اگه صرفا در کمبوباکس 1 یا کمبو باکس 2 اعداد 1 تا99 وارد بشه گروپ باکس 2 و 3 غیرفعال میشه و فقط عدد میگیره نه حروف،بقیه کلیدهای کی برد بجزء اعداد غیرفعال هستند تا اینجا کد درست کار میکنه
و کد دیگه ای نوشتم که اگر کمبو باکس 1 خالی بود یا دو تا صفر بود ولی کمبوباکس 2 صفر یا خالی نبود گروپ باکس 2 و 3 غیرفعال میشه یا بالعکس اگر کمبو باکس 2 خالی بود یا صفر بود ولی کمبوباکس 1 دو تاصفر یا خالی نبود گروپ باکس 2 و 3 غیرفعال میشه تا اینجا مشکل ندارم ولی طبق تصویر زیر



00
55







طبق کدی که نوشتم کمبوباکس های ایجاد شده بیشتر از دو عدد نمیگیره مشکلم اینه که وقتی دو تاصفر وارد میشه و بعدش هر کدام از کلیدهای کیبرد رو میزنم گروپ باکس 2 و 3 فعال میشه و کدی میخوام هرکدوم از کمبوباکس ها صفر نبود گروپ باکس 2 و 3 غیرفعال بشه امیدوارم منظورم رو رسونده باشم

کد زیر رو نوشتم

private void comboBox2_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar <= '9' && e.KeyChar >= '1') //comboBox7.Text == string.Empty) //&& e.KeyChar >= '1' || e.KeyChar == '0')
{
groupBox4.Enabled = false;
groupBox6.Enabled = false;
linkLabel1.Enabled = false;
}
//else if (comboBox7.Text == "")// comboBox7.Enabled == false || e.KeyChar == '0'comboBox7.Text == "0" |||| e.KeyChar <= '9' && e.KeyChar >= '1'
// groupBox2.Enabled = true;
if (comboBox3.Text != "" && comboBox3.Text != "null" ) //
{
groupBox4.Enabled = false;
groupBox6.Enabled = false;
}



if (comboBox2.Text == "")

e.Handled = false;
else
e.Handled = false;
if (!(char.IsDigit(e.KeyChar) || e.KeyChar == (char)Keys.Back))
e.Handled = true;

string x;
x = comboBox2.Text; // وارد کردن دو صفر کی برد غیرفعال میشود
//y = comboBox2.Text;
if ((x.Trim().StartsWith("00"))) // && (y.Trim().StartsWith("00")))
{
if (e.KeyChar >= '0' && e.KeyChar <= '9')

e.Handled =true;
groupBox4.Enabled = true;
groupBox6.Enabled = true;
linkLabel1.Enabled = true;


string u; // وارد کردن دو صفر کی برد غیرفعال میشود
u = comboBox3.Text;
if (!(u.Trim().StartsWith("00") || x.Trim().StartsWith("000")))
{
if (e.KeyChar >= '0' && e.KeyChar <= '9')
e.Handled = false;

مشکلم اینه که وقتی در گروپ باکس، یک کمبو باکس عدد وارد بشه و کمبو باکس دوم بیشتر از دو تا صفر وارد بشه دو تا گروپ باکس دیگه فعال میشن با توجه به اینکه بیشتر از دو تا صفر چیزی وارد کمبو باکس نمیشه چه کدی بنویسم که بعد از وارد کردن دو تاصفر گروپ باکس های دیگه فعال نشن لظفا راهنمایی بفرمایید