
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