PDA

View Full Version : جمع مقدار عددی در textbox



saeed_bad1
شنبه 20 خرداد 1391, 07:00 صبح
سلام . کدی که دو textbox رو با هم جمع کنه و درون تکس باکس سومی بریزه . (از نوع عددی)

amirxbest
شنبه 20 خرداد 1391, 08:31 صبح
int sum;
sum = Int32.Parse(textBox1.Text) + Int32.Parse(textBox2.Text);
textBox3.Text = sum.ToString();

NasimBamdad
شنبه 20 خرداد 1391, 08:58 صبح
textBox3.Text = Convert.ToString(Convert.ToInt32(textBox1.Text) + Convert.ToInt32(textBox2.Text));

تصحیح شد !

NasimBamdad
شنبه 20 خرداد 1391, 09:00 صبح
سوال :

پست دوم بهینه تر هست ، یا پست سوم ؟

با توجه به اینکه پست دوم از یک متغیر استفاده کرده و مقداری حافظه می گیره
و اینکه در پست سوم درسته که متغیر نداریم ، اما از Convert استفاده شده !

اساتید نظر بدید

NasimBamdad
شنبه 20 خرداد 1391, 09:04 صبح
سوال :

پست دوم بهینه تر هست ، یا پست سوم ؟

با توجه به اینکه پست دوم از یک متغیر استفاده کرده و مقداری حافظه می گیره
و اینکه در پست سوم درسته که متغیر نداریم ، اما از Convert استفاده شده !

اساتید نظر بدید

NasimBamdad
شنبه 20 خرداد 1391, 11:01 صبح
کد پست 2 یک متغیر تعریف کرده که میتونست نکنه.
کد پست 3 اشتباه است به این صورت اصلاح کنید
textBox3.Text = Convert.ToString(Convert.ToInt32(textBox1.Text) + Convert.ToInt32(textBox2.Text));


منم منظورم همین بود ، خلاصه نویسی کردم :D

NasimBamdad
شنبه 20 خرداد 1391, 13:41 عصر
خلاصه نویسیو جدی گفتی؟ یعنی منظورم اینه که فکر میکنی این دو با هم یکسان هستند؟ چون کد شما متن دو تکست باکس رو الحاق و به عدد تبدیل میکنه و بعد دوباره به رشته(یک دور بی حاصل). یعنی اصلا عمل جمع عدد صورت نمیگره.

شوخی کردم بابا ، منظورم این هست که جا مانده ، !

با موبایل نوشتم اون رو :D

farjadian
یک شنبه 27 تیر 1395, 14:07 عصر
سلام من یه ماشین حساب تو سی شارپ ساختم میخوام مثل ماشین حساب سیستم مقادیر تکست باکس رو بخونه بعد عملیات ریاضی روش انجام بشه کسی میتونه کمک کنه

mrprestige
یک شنبه 27 تیر 1395, 20:23 عصر
سلام من یه ماشین حساب تو سی شارپ ساختم میخوام مثل ماشین حساب سیستم مقادیر تکست باکس رو بخونه بعد عملیات ریاضی روش انجام بشه کسی میتونه کمک کنه

سلام وقت بخیر دوست من ، شما در مرحله اول این متغییر ها رو داخل کلاس Form تون معرفی کنید


string operand1 = string.Empty;
string operand2 = string.Empty;
string result;
char operation;


بعد داخل رویداد FormLoad این کد رو بنویسید


btnOne.Click += new EventHandler(btn_Click);
btnTwo.Click += new EventHandler(btn_Click);
btnThree.Click += new EventHandler(btn_Click);
btnFour.Click += new EventHandler(btn_Click);
btnFive.Click += new EventHandler(btn_Click);
btnSix.Click += new EventHandler(btn_Click);
btnSeven.Click += new EventHandler(btn_Click);
btnEight.Click += new EventHandler(btn_Click);
btnNine.Click += new EventHandler(btn_Click);
btnZero.Click += new EventHandler(btn_Click);


بعد توی متد btn_Click درست کردیم اینو بنویس

void btn_Click(object sender, EventArgs e)
{
Button btn = sender as Button;


switch (btn.Name)
{
case "btnOne":
txtInput.Text += "1";
break;
case "btnTwo":
txtInput.Text += "2";
break;
case "btnThree":
txtInput.Text += "3";
break;
case "btnFour":
txtInput.Text += "4";
break;
case "btnFive":
txtInput.Text += "5";
break;
case "btnSix":
txtInput.Text += "6";
break;
case "btnSeven":
txtInput.Text += "7";
break;
case "btnEight":
txtInput.Text += "8";
break;
case "btnNine":
txtInput.Text += "9";
break;
case "btnZero":
txtInput.Text += "0";
break;
}


حالا تو رویداد KeyPress مربوط به Textbox اینو بنویس

switch (e.KeyChar)
{
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
case '0':
break;
default:
e.Handled = true;
MessageBox.Show("Only numbers, +, -, ., *, / are allowed");
break;
}


و میرسیم به عملگره ، توی Button مربوط به عملگر مثبت اینو بنویس ( ببین دوست من ، من اینجا به دلیل اینکه حجم تایپیک بالاتر نره یه مثال از یه عملگر میزنم و بقیه اش به عهده خودت فقط کافیه شکل اون عملگر رو نسبت به اون دکمه ای که هست حالا تقسم ضرب منه و .. تغییر بدی )

private void btnPlus_Click(object sender, EventArgs e)
{
operand1 = txtInput.Text;
operation = '+';
txtInput.Text = string.Empty;
}


و در آخر هم برای عملگر مساوی هم این کد رو بنویس

operand2 = txtInput.Text;
double opr1, opr2;
double.TryParse(operand1, out opr1);
double.TryParse(operand2, out opr2);
switch (operation)
{
case '+':
result = (opr1 + opr2).ToString();
break;


case '-':
result = (opr1 - opr2).ToString();
break;


case '*':
result = (opr1 * opr2).ToString();
break;


case '/':
if (opr2 != 0)
{
result = (opr1 / opr2).ToString();
}
else
{
MessageBox.Show("Can't divide by zero");
}
break;
}
txtInput.Text = result.ToString();


و میتونی هم سلیقه ای دیگه کار کنی مثلا جذر و رادیکال و لوگاریتم Sin و ... رو هم بزاری . مثلا میتونی دکمه C تا هر سری بعد از انجام هر عملیات با زدن این دکمه صفحه پاک بشه برای انجام عملیات جدید

private void btnClear_Click(object sender, EventArgs e)
{
txtInput.Text = string.Empty;
operand1 = string.Empty;
operand2 = string.Empty;
}


پیروز و موفق باشی
از کدنویسی لذت ببری

daniyaltjm
یک شنبه 27 تیر 1395, 21:55 عصر
سلام من یه ماشین حساب تو سی شارپ ساختم میخوام مثل ماشین حساب سیستم مقادیر تکست باکس رو بخونه بعد عملیات ریاضی روش انجام بشه کسی میتونه کمک کنه


با استفاده ازMicrosoft Script Control 1.0 به این صورت:

روی نام پروژه راست کلیک کرده، روی add a reference راست کلیک کنید . از کادر باز شده به تب COM بروید ، Microsoft Script Control 1.0" را یافته و پروزه خود اضافه کنید

MSScriptControl.ScriptControl sc = new MSScriptControl.ScriptControl();
sc.Language = "VBScript";
string expression = "1 + 2 * 7";
object result = sc.Eval(expression);
MessageBox.Show(result.ToString());

به جای "1 + 2 * 7" از تکست باکس استفاده کن.