مشکل در رویداد TextChanged تکست باکس
سلام دوستان
من به ی مشکلی بر خوردم
تو فرم 3 تا تکست باکس دارم، که هر وقت تو اولی عددی بنویسم بلافاصله با عدد تکست باکس دوم جمع بشه و بره تو تکست باکس سوم
تکست باکس دوم، مقدار ثابت داره.
از کد زیر استفاده می کنم
int num1, num2, sum;
public string zero = "0";
private void Number1Txt_TextChanged(object sender, EventArgs e)
{
if (salNumberTxt.Text != null)
{
num1 = Int32.Parse(Number1Txt.Text);
num2 = Int32.Parse(Number2Txt.Text);
sum = num1 + num2;
SumNumberTxt.Text = sum.ToString();
}
else
{
Number1Txt.Text = zero;
SumNumberTxt.Text= zero;
}
}
این کد درست کار می کنه ولی مشکلش اینه که هر وقت بعد از وارد کردن عدد تو تکست اولی بخوام پاکش کن و از نو بنویسمش از int32 خطا می گیره!
از شرط null بودن هم استفاده کردم ولی باز نمیشه!
چجوری باید این استثنا رو کنترل کنم؟
نقل قول: مشکل در رویداد TextChanged تکست باکس
شما ميتوني كاري كني كه تكس باكس فقط عدد قبول كنه و در صورت خالي بودن عدد صفر در آن قرار گيرد !
معمولا براي تكس باكسها عدد همين كار را انجام ميدهند كه وقتي خالي هست در اون 0 باشه
از Try و Catch استفاده كن كه در زمان وقوع خطا كار مناسب را انجام دهد مثلا 0 قرار دهد
نقل قول: مشکل در رویداد TextChanged تکست باکس
شرط رو بصورت زیر تغییر بدید درست میشه.
if (!String.IsNullOrEmpty(salNumberTxt.Text.Trim()))
{
num1 = Int32.Parse(Number1Txt.Text);
num2 = Int32.Parse(Number2Txt.Text);
sum = num1 + num2;
SumNumberTxt.Text = sum.ToString();
}
else
{
Number1Txt.Text = zero;
SumNumberTxt.Text = zero;
}
نقل قول: مشکل در رویداد TextChanged تکست باکس
نقل قول:
نوشته شده توسط
Reza_Yarahmadi
شرط رو بصورت زیر تغییر بدید درست میشه.
if (!String.IsNullOrEmpty(salNumberTxt.Text.Trim()))
{
num1 = Int32.Parse(Number1Txt.Text);
num2 = Int32.Parse(Number2Txt.Text);
sum = num1 + num2;
SumNumberTxt.Text = sum.ToString();
}
else
{
Number1Txt.Text = zero;
SumNumberTxt.Text = zero;
}
کدی که گفتین، عالی جواب داد
فقط تو وارد کردن حروف همون مشکل قبلی رو داره، که اگه روش کار کنم،شاید بتونم رفعش کنم
در کل ممنونم، لطف کردین
نقل قول: مشکل در رویداد TextChanged تکست باکس
دوست عزیز...بهتره که به این صورت عمل کنین چون مقدار عددی می خواین بگیرین:
()convert.ToInt32
چون Int32.Parse(String Value)
معمولا اینجوری بهتره:چشمک:
نقل قول: مشکل در رویداد TextChanged تکست باکس
نقل قول:
نوشته شده توسط
unknown87s
کدی که گفتین، عالی جواب داد
فقط تو وارد کردن حروف همون مشکل قبلی رو داره، که اگه روش کار کنم،شاید بتونم رفعش کنم
در کل ممنونم، لطف کردین
شما برای رفع این مشکل دو تا راه حل داری اول اینکه اجازه ندی در تکس باکس به جز عدد وارد بشه که کدش اونقدر تو همین تالار مطرح شده که با یه سرچ کوچیک پیدا میکنی یا این که اون خط رو در try قرار بدی که در صورتی که به همچین مسئله ای بر خورد در قسمت catch بهش بگی چی کار بکنه
موفق باشید
نقل قول: مشکل در رویداد TextChanged تکست باکس
با سلام اگه بخوایم مقادیر یه سری text box رو تو دو تا ارایه بریزیم چی کار میشه کرد ؟ من از کد زیر استفاده کردم
int []x=newint[6] ;
int []y=newint[6] ;
for (int i = 0; i < 6; i++)
{
x[i] = Convert.ToInt32((textBox(i+1)).Text);
y[i] = Convert.ToInt32((textBox(i+2)).Text);
}
ولی این ارور رو میده
The name 'textBox' does not exist in the current context
چی کار باید بکنم ؟ مگه نمیشه یه سری text box رو به صورت ارایه ای مقدار دهی کرد؟
نقل قول: مشکل در رویداد TextChanged تکست باکس
يك روش ميتونه بصورت زير باشه
int[] x = new int[6];
int[] y = new int[6];
for (int i = 0; i < 6; i++)
{
if (this.Controls.Find("textBox" + (i + 1)).Length > 0)
x[i] = Convert.ToInt32(this.Controls.Find("textBox" + (i + 1))[0].Text);
if (this.Controls.Find("textBox" + (i + 2)).Length > 0)
y[i] = Convert.ToInt32(this.Controls.Find("textBox" + (i + 2))[0].Text);
}
1 ضمیمه
نقل قول: مشکل در رویداد TextChanged تکست باکس
نقل قول:
نوشته شده توسط
unknown87s
سلام دوستان
من به ی مشکلی بر خوردم
تو فرم 3 تا تکست باکس دارم، که هر وقت تو اولی عددی بنویسم بلافاصله با عدد تکست باکس دوم جمع بشه و بره تو تکست باکس سوم
تکست باکس دوم، مقدار ثابت داره.
از کد زیر استفاده می کنم
int num1, num2, sum;
public string zero = "0";
private void Number1Txt_TextChanged(object sender, EventArgs e)
{
if (salNumberTxt.Text != null)
{
num1 = Int32.Parse(Number1Txt.Text);
num2 = Int32.Parse(Number2Txt.Text);
sum = num1 + num2;
SumNumberTxt.Text = sum.ToString();
}
else
{
Number1Txt.Text = zero;
SumNumberTxt.Text= zero;
}
}
این کد درست کار می کنه ولی مشکلش اینه که هر وقت بعد از وارد کردن عدد تو تکست اولی بخوام پاکش کن و از نو بنویسمش از int32 خطا می گیره!
از شرط null بودن هم استفاده کردم ولی باز نمیشه!
چجوری باید این استثنا رو کنترل کنم؟
از tryparse استفاده کن :
privatevoid textBox1_TextChanged(object sender, EventArgs e)
{
Int32 myNum = 0;
int num1 = 0;
if (Int32.TryParse(textBox1.Text, out myNum))
{
num1 = int.Parse(textBox1.Text);
}
else
MessageBox.Show(" ");
int num2 = int.Parse(textBox2.Text);
textBox3.Text = (num1 + num2).ToString();
}
این طوری مشکلت حل می شه
موفق باشید
نقل قول: مشکل در رویداد TextChanged تکست باکس
private void Number1Txt_TextChanged(object sender, EventArgs e)
{
try
{
if (salNumberTxt.Text != null)
{
num1 = Int32.Parse(Number1Txt.Text);
num2 = Int32.Parse(Number2Txt.Text);
sum = num1 + num2;
SumNumberTxt.Text = sum.ToString();
}
}
catch
{
Number1Txt.Text = zero;
SumNumberTxt.Text = zero;
}
}