PDA

View Full Version : مشکل در نوشتن توان



black_shadow
سه شنبه 22 دی 1394, 11:26 صبح
سلام من این قطعه کد رو نوشتم
private void btnPower_Click(object sender, EventArgs e)
{
// total1 = total1 + double.Parse(txtDisplay.Text);

total1 = double.Parse(txtDisplay.Text);
txtDisplay.Clear();
txtDisplay.Text = (total1 * total1).ToString();

if (flag == 1)
{
txtDisplay.Text = "";
}
flag++;
// txtDisplay.Clear();
}

من در اینجا میخوام توان یه ورودی رو حساب کنم فقط یکبار
یعنی مثلا 2به توان 2 میشه 4 و فقط همین 4رو نشون بده و با زدن دکمه توان دیگه 4رو به توان نرسونه
من کد بالا رو نوشتم و درست انجام میشه ولی یه مشکلی دارم اینه که اگه کاربر زیاد رو دکمه توان کلیک کنه برنامه اررور میده و هنگ میکنه واسه این باید چیکار کنم
؟
یا اصلان راهی خودتون بلدین واسه چنین کاری که 1بار توان نشون به رو بگید

ممنون میشم راهنمایی کنید

ژیار رحیمی
سه شنبه 22 دی 1394, 16:24 عصر
private void btnPower_Click(object sender, EventArgs e)
{
if(string.IsNullOrEmpty(txtDisplay.Text)) return;
total1 = double.Parse(txtDisplay.Text);
btnPower.Enable=false;
txtDisplay.Clear();
txtDisplay.Text =Math.Pow (total1 ,2).ToString();//توان 2 عدد ورودی
btnPower.Enable=true;
}

black_shadow
سه شنبه 22 دی 1394, 22:32 عصر
ممنون ازت
ولی ارور میده
این ارور

Error 1 'System.Windows.Forms.Button' does not contain a definition for 'Enable' and no extension method 'Enable' accepting a first argument of type 'System.Windows.Forms.Button' could be found (are you missing a using directive or an assembly reference?)

راستی میشه توضیح بدی که اون کدا چیکار میکنن و برای چی اینارو گذاشتی؟

ژیار رحیمی
سه شنبه 22 دی 1394, 22:42 عصر
عذر خواهی میکنم اشتباه املایی در نام خاصیت پیش اومد Enabled صحیح میباشد.دوست گرامی نمونه برنامه های ماشین حساب در این انجمن توسط دوستان برای آموزش و یادگیری گذاشته شده یکی دو نمونه دانلود کن و کد ها جهت یادگیری بیشتر بررسی کن

black_shadow
سه شنبه 22 دی 1394, 22:51 عصر
ممنون دوست عزیز میشه کد خودتونو توضیح بدین؟

در ضمن استاد من میخوام که بیشتر از 1بار به توان نرسونه
ولی من هر بار دکمه توان رو میزنم عدد قبلیو به توان میرسونه
من فقط میخوام مثلا عدد 2رو به توان برسونم بشه 4 دیگه بیشتر از این نشه یعنی کاربر باز دکمه توان رو زد دیگه 16 رو نشون نده
این فایل رو نگاه کنین منظورمو میفهمین

http://up.ashiyane.org/images/ltl2si2853feswpp1n5t.rar

pbm_soy
سه شنبه 22 دی 1394, 22:55 عصر
در پست بالا دوستمون در خطهای 5 و 8 خصوصیت Enable نوشتند که در واقع باید Enabled باشد صرفا اشتباه تایپی است!

در مورد توضیح برنامه فکر نمیکنم توضیح خاصی نیاز باشد
خط 3 : مقدار تکست باکس را چک میکند اگر خالی باشد از این رخداد خارج میشود تا دستورات پایینی اجرا نشوند و خطا ندهند
خط4: ارزش عددی معادل رشته موجود در تکست باکس را محاسبه کرده و در متغییر totla1 میرزید
خ5: باتن مورد نظر را غیرفعال میکند
خ6: محتوای تکست باکس را خالی میکند (نیازی به این دستور نبود چون در هرصورت درخط بعدی به آن تکست باکس مقدار داده شده است پس مقادیر قبلی آن خود به خود پاک میشدند)
خ7: محاسبه توان دوم عدد total1 و ریختن آن به داخل تکست باکس
خ8: باتن موردنظر را فعال میکند

توجه غیرفعال کردن و فعال کردن باتنها در اینجا کمی غیر منطقی است البته کار خوبی بود اگر محاسبات بین این دو دستور خیلی طول میکشید کاربرد خیلی خوبی میداشت و باعث میشد که در حین محاسبه کاربر دوباره بروی این گزینه کلیک نکند

pbm_soy
سه شنبه 22 دی 1394, 22:56 عصر
اگر میخواهید فقط یکبار محاسبه کنید در خط 8 برنامه عبارت true را به false تبدیل کنید تا کاربر فقط یکبار بتواند بروی آن کلیک کند

black_shadow
سه شنبه 22 دی 1394, 23:10 عصر
خیلی ممنون دوست عزیز