En iyi yanıtlayıcılar
textbox'lar arasında ardaşık işlemler

Soru
-
Öncelikle herkese merhaba,
Tasarlanmış olan form üzerinde yer alan textbox'lar arasında, buton'a bağlı olmadan belirli sıra ile birbirleri nin değerlerini kullanarak hesaplama yapan bir form tasarımı üzerinde çalışıyorum fakat istediğim gibi çalıştıramadım.
Şu şekilde bir çalışma düzeni oluşturmayak istiyorum
textbox1 * textbox2 / 100 * textbox3/ 1000 = textbox4.
textbox 1 ve textbox2 ye girilen değer 100 'e bölünüp textbox 3 değeri ile çarpılıp 1000'e bölünerek textbox 4 ün textine yazılacak
yardımlarınız için şimdiden teşekkür ederim
Saygılar
Yanıtlar
-
textChanged eventi formun ilk açılış esnasındada çalıştığı ve o aşamada tüm textboxlarınız boş olduğu için hata vermesi normal.
try bloğu içerisine alabilrisiniz.
Ayrıca sayısal işlemler için textbox kullanmak pek doğru bir yöntem değil. numericUpDown kullanabilirsiniz. yada textboxlara girilen her karakterin sayısal değer olduğunu doğrulamanız gerekir.
private void hesapla() { try { int sayi1 = int.Parse(textBox1.Text); int sayi2 = int.Parse(textBox2.Text); int sayi3 = int.Parse(textBox3.Text); decimal sonuc = (decimal)(((sayi1 * sayi2) / 100) * sayi3) / 1000; textBox4.Text = sonuc.ToString(); } catch { } } private void button1_Click(object sender, EventArgs e) { hesapla(); } private void textBox1_TextChanged(object sender, EventArgs e) { hesapla(); } private void textBox2_TextChanged(object sender, EventArgs e) { hesapla(); } private void textBox3_TextChanged(object sender, EventArgs e) { hesapla(); }
Sorunuzun yanıtı bu ise "Yanıt Olarak Öner" olarak işaretleyin, eğer faydalı bir yorum ise "Oy Ver"erek forumun işleyişine katkıda bulunabilirsiniz
- Yanıt Olarak İşaretleyen Atlass88 1 Aralık 2020 Salı 09:06
Tüm Yanıtlar
-
Merhaba, aşağıdaki kodu dener misiniz?
Textboxa girdiğiniz sayılar tamsayı değilse, sayi1,sayi2,sayi3'üde decimal yapabilirsiniz.
int sayi1 = int.Parse(textBox1.Text); int sayi2 = int.Parse(textBox2.Text); int sayi3 = int.Parse(textBox3.Text); decimal sonuc = (decimal)(((sayi1 * sayi2)/100)*sayi3)/1000; textBox4.Text = sonuc.ToString();
_______________________________________________________
Sorunuzun yanıtı bu ise "Yanıt Olarak Öner" olarak işaretleyin, eğer faydalı bir yorum ise "Oy Ver"erek forumun işleyişine katkıda bulunabilirsiniz
- Düzenleyen Ferit Gezgil 1 Aralık 2020 Salı 06:57
-
-
textChanged eventi formun ilk açılış esnasındada çalıştığı ve o aşamada tüm textboxlarınız boş olduğu için hata vermesi normal.
try bloğu içerisine alabilrisiniz.
Ayrıca sayısal işlemler için textbox kullanmak pek doğru bir yöntem değil. numericUpDown kullanabilirsiniz. yada textboxlara girilen her karakterin sayısal değer olduğunu doğrulamanız gerekir.
private void hesapla() { try { int sayi1 = int.Parse(textBox1.Text); int sayi2 = int.Parse(textBox2.Text); int sayi3 = int.Parse(textBox3.Text); decimal sonuc = (decimal)(((sayi1 * sayi2) / 100) * sayi3) / 1000; textBox4.Text = sonuc.ToString(); } catch { } } private void button1_Click(object sender, EventArgs e) { hesapla(); } private void textBox1_TextChanged(object sender, EventArgs e) { hesapla(); } private void textBox2_TextChanged(object sender, EventArgs e) { hesapla(); } private void textBox3_TextChanged(object sender, EventArgs e) { hesapla(); }
Sorunuzun yanıtı bu ise "Yanıt Olarak Öner" olarak işaretleyin, eğer faydalı bir yorum ise "Oy Ver"erek forumun işleyişine katkıda bulunabilirsiniz
- Yanıt Olarak İşaretleyen Atlass88 1 Aralık 2020 Salı 09:06
-
Özverili ve açıklayıcı yanıtlarınız için teşekkürler.
Farklı bir yol izlemekte fayda var dediiniz gibi. Form tasarımım oldukça karmaşık bir hesaplama dizesinden meydana geliyor. Çıkarttığım formülasyonu tekrardan dizayn edim dediğiniz gibi şekillendirmeye çalışacağım.
iyi çalışmalar