using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WindowsFormsApplication2 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void txt_Sayilar_KeyPress(object sender, KeyPressEventArgs e) { // keypress event'i text'e bir tuş basıldığında çalışan eventtir. // e.KeyChar ile hangi karaktere basıldığını ascii karşılıgını bulabiliriz. // sadece sayilara izin vermek için 0 ile 9 un ascii karşılığını bulmamız gerek. // 0'ın ascii karşılığı 48 9'un ascii karşılığı ise 57 //hangi tuşa basildığını hafızaya alalım int basilantus = Convert.ToInt32(e.KeyChar); //stringden çevirme yapmadığımız için int.parse kullanamayız. // eğer 48 ile 57 arası DEĞİLSE tuş basımını iptal etmek gerekir. // backspace'in çalışması için || basilantus == 8 koşulunu ekledik. if (!(basilantus >= 48 && basilantus <= 57 || basilantus == 8)) { // baştaki ! işareti tüm ifadeyi tersine çevirir. e.Handled = true; // handled = true yapmamız basılan tuşu geçersiz saymak içindir. } } private void txt_Yazilar_KeyPress(object sender, KeyPressEventArgs e) { // sadece harflerin yazılmasını istiyorsak üstteki koşulun tam tersini yapmamız gerek. //hangi tuşa basildığını hafızaya alalım int basilantus = Convert.ToInt32(e.KeyChar); //stringden çevirme yapmadığımız için int.parse kullanamayız. // 48 ile 57 arası tuş basımını iptal etmek gerekir. çünkü bu sayı araları klavyede 0 ile 9 sayıların basıldığına işarettir. if ((basilantus >= 48 && basilantus <= 57)) { // baştaki ! işareti tüm ifadeyi tersine çevirdiği için onu kaldırdık. e.Handled = true; // handled = true yapmamız basılan tuşu geçersiz saymak içindir. } } private void txt_maxint_KeyPress(object sender, KeyPressEventArgs e) { // text'e girilen sayının integera sığmayacak kadar büyükse işlem yapmamasını sağlamalıyız. // bu yüzden ilk öncelikle harf yazılmasını önlemek gerek. int basilantus = Convert.ToInt32(e.KeyChar); // eğer 48 ile 57 arası DEĞİLSE tuş basımını iptal etmek gerekir. if (!(basilantus >= 48 && basilantus <= 57)) { // tuş basımını engelledik. e.Handled = true; } else { // eğer sayıya basılmışsa burası çalışacaktır. // ve burda bir kontrol yapmamız gerek. // text'e girilen değer acaba int'e sığacakmı yoksa program hatamı(istisna) verecek. // eğer hata(istisna) vericekse tuş basımını engellemeliyiz. try { // int değerini aşarsa bu satır hataya(istisna) neden olucaktır. int textdekiDeger = int.Parse(txt_maxint.Text); } catch(OverflowException) { // hata eğer overflow ise yani taşmışssa tuş basımını engelledik. // istersek son olabileceği rakamı text e güncelletebiliriz. txt_maxint.Text = int.MaxValue.ToString(); e.Handled = true; } } } private void button1_Click(object sender, EventArgs e) { Application.Exit(); } } }
Dosyayı İndir