PDA

View Full Version : سوال: با یک متد مقدار ورودی 12 تا تکس باکس رو کنترل کنم



دلتنگ اسمان
شنبه 28 تیر 1393, 13:42 عصر
با سلام
12 تا تکس باکس دارم میخوام اگه مقدار ورودی تکس باکسی اشتباه وارد شده اصلاح شده آن را رو تکس باکس نشون بده طبق کد زیر :
اما مشکلم اینجاست که چطور میتونم داخل شرط متوجه بشم مقدار کدوم تکس باکس وارد شده؟ این متد قراره در رویداد TextChanged تکس باکسها فراخوانی بشه.


private void txtxhange(string txt)
{
string reg = "[1-9]{2}";
if (Regex.IsMatch(txt, reg))
{
MessageBox.Show("عدد وارد شده باید بین 1 تا 8 باشد", "عدد ورودی", MessageBoxButtons.OK);
txt = "";
return;
}


if (txt == "a") txt = "A";
else if (txt == "b") txt = "B";
else if (txt == "c") txt = "C";
else if (txt == "d") txt = "D";
else if (txt == "e") txt = "E";

string reg1 = "[A-E]{2}";
if (Regex.IsMatch(txt, reg1))
{
MessageBox.Show("حروف وارد شده صحیح نیست", "حروف وارد شده", MessageBoxButtons.OK);
txt = "";
return;
}
string reg3 = "[a-e]{1}";
if (Regex.IsMatch(txt, reg3))
{
MessageBox.Show("حروف وارد شده صحیح نیست", "حروف وارد شده", MessageBoxButtons.OK);
txt = "";
return;
}
}


در کد بالا مقدار تکس باکس وارد متد میشه و اگه ورودی مثلا txt="a" بود صحیح آن را txt="A" قرار بده. میخوام همین مقدار صحیح رو در تکس باکس مربوطه نشون بده.

parvizwpf
شنبه 28 تیر 1393, 13:55 عصر
سوالتون کمی نامفهومه. میشه دقیق تر بگید.

دلتنگ اسمان
شنبه 28 تیر 1393, 14:14 عصر
سوالتون کمی نامفهومه. میشه دقیق تر بگید.
میتونم کد ها رو در رویداد تک تک تکس باکس ها بنویسم و جواب هم میده اما به این شیوه خیلی جالب نیست راهکار دیگه ای نداره؟(فعلا دوتا تکس باکس)


private void textBox1_TextChanged(object sender, EventArgs e)
{

string reg = "[1-9]{2}";
if (Regex.IsMatch(textBox1.Text, reg))
{
MessageBox.Show("عدد وارد شده باید بین 1 تا 8 باشد", "عدد ورودی", MessageBoxButtons.OK);
textBox1.Text = "";
return;
}

if (textBox1.Text == "a") textBox1.Text = "A";
else if (textBox1.Text == "b") textBox1.Text = "B";
else if (textBox1.Text == "c") textBox1.Text = "C";
else if (textBox1.Text == "d") textBox1.Text = "D";
else if (textBox1.Text == "e") textBox1.Text = "E";


string reg1 = "[A-E]{2}";
if (Regex.IsMatch(textBox1.Text, reg1))
{
MessageBox.Show("حروف وارد شده صحیح نیست", "حروف وارد شده", MessageBoxButtons.OK);
textBox1.Text = "";
return;
}
string reg3 = "[a-e]{1}";
if (Regex.IsMatch(textBox1.Text, reg3))
{
MessageBox.Show("حروف وارد شده صحیح نیست", "حروف وارد شده", MessageBoxButtons.OK);
textBox1.Text = "";
return;
}

}

private void textBox2_TextChanged(object sender, EventArgs e)
{
string reg = "[1-9]{2}";
if (Regex.IsMatch(textBox2.Text, reg))
{
MessageBox.Show("عدد وارد شده باید بین 1 تا 8 باشد", "عدد ورودی", MessageBoxButtons.OK);
textBox2.Text = "";
return;
}

if (textBox2.Text == "a") textBox2.Text = "A";
else if (textBox2.Text == "b") textBox2.Text = "B";
else if (textBox2.Text == "c") textBox2.Text = "C";
else if (textBox2.Text == "d") textBox2.Text = "D";
else if (textBox2.Text == "e") textBox2.Text = "E";

string reg1 = "[A-E]{2}";
if (Regex.IsMatch(textBox2.Text, reg1))
{
MessageBox.Show("حروف وارد شده صحیح نیست", "حروف وارد شده", MessageBoxButtons.OK);
textBox2.Text = "";
return;
}
string reg3 = "[a-e]{1}";
if (Regex.IsMatch(textBox2.Text, reg3))
{
MessageBox.Show("حروف وارد شده صحیح نیست", "حروف وارد شده", MessageBoxButtons.OK);
textBox2.Text = "";
return;
}
}

parvizwpf
شنبه 28 تیر 1393, 14:52 عصر
ما میتونید برای کار این کدها، یک متد درست کنید و بعنوان پارامتر تکست باکس بهش پاس بدید.و داخل هر تکست چنج این متد رو با دادن همون تکست بعنوان پارامتر بخونید.

public void checkString(TextBox text)
string reg = "[1-9]{2}"; if (Regex.IsMatch(text.Text, reg))

{

MessageBox.Show("عدد وارد شده باید بین 1 تا 8 باشد", "عدد ورودی", MessageBoxButtons.OK);

text.Text = "";

return;

}


if (text.Text == "a") text.Text = "A";

else if (text.Text == "b") text.Text = "B";

else if (text.Text == "c") text.Text = "C";

else if (text.Text == "d") textBox2.Text = "D";

else if (text.Text == "e") text.Text = "E";


string reg1 = "[A-E]{2}";
if (Regex.IsMatch(text.Text, reg1))

{
MessageBox.Show("حروف وارد شده صحیح نیست", "حروف وارد شده", MessageBoxButtons.OK);
text.Text = "";

return;
}
string reg3 = "[a-e]{1}";
if (Regex.IsMatch(text.Text, reg3))

{

MessageBox.Show("حروف وارد شده صحیح نیست", "حروف وارد شده", MessageBoxButtons.OK);
text.Text = "";

return;
}



بجای کد:

if (textBox1.Text == "a") textBox1.Text = "A"; else if (textBox1.Text == "b") textBox1.Text = "B";
else if (textBox1.Text == "c") textBox1.Text = "C";
else if (textBox1.Text == "d") textBox1.Text = "D";
else if (textBox1.Text == "e") textBox1.Text = "E";



میتونید از:

textbox1.Text=textbox1.text.ToUpper();

استفاده کنید.