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