Bu kodda önce TC Kimlik Numarası kontrol ediliyor. Eğer geçerli değilse, Vergi Kimlik Numarası kontrolü yapılıyor. En sonunda da uygun görsellere ve buton durumuna göre ayarlamalar yapılıyor.
public void KimlikKontrol(string degv)
{
string girilenSayi = degv.Trim();
// TC Kimlik kontrolü
if (girilenSayi.Length == 11 && TcDogruMu(girilenSayi))
{
simpleButton5.Enabled = true;
pictureEdit1.Visible = false; // Hatalı resim gizle
pictureEdit2.Visible = true; // Doğru resim göster
return;
}
// Vergi Kimlik No kontrolü
if (girilenSayi.Length == 10 && VergiKimlikNoDogruMu(girilenSayi))
{
// TC değil ama geçerli bir VKN
simpleButton5.Enabled = true;
pictureEdit1.Visible = false;
pictureEdit2.Visible = true;
return;
}
// Ne TC ne VKN geçerli değil
simpleButton5.Enabled = false;
pictureEdit1.Visible = true;
pictureEdit2.Visible = false;
textEdit1.Focus();
}
public bool TcDogruMu(string kimlikno)
{
if (kimlikno.Length != 11 || !kimlikno.All(char.IsDigit))
return false;
int[] sayilar = new int[11];
for (int i = 0; i < kimlikno.Length; i++)
{
sayilar[i] = int.Parse(kimlikno[i].ToString());
}
int toplam = 0;
for (int i = 0; i < 10; i++) // Son basamak hariç
{
toplam += sayilar[i];
}
return toplam.ToString().Length > 1 &&
toplam.ToString()[1].ToString() == sayilar[10].ToString() &&
sayilar[10] % 2 == 0;
}
public bool VergiKimlikNoDogruMu(string vkn)
{
if (vkn.Length != 10 || !vkn.All(char.IsDigit))
return false;
int[] sayilar = vkn.Select(c => int.Parse(c.ToString())).ToArray();
int toplam = 0;
for (int i = 0; i < 9; i++)
{
int deger = (sayilar[i] + 9 - i) % 10;
int carpim = (deger * (2 << (8 - i))) % 9;
if (deger != 0 && carpim == 0) carpim = 9;
toplam += carpim;
}
int kontrol = (10 - (toplam % 10)) % 10;
return sayilar[9] == kontrol;
}
Kullanım:
Bu fonksiyonları çağırmak için bir buton click olayına aşağıdaki gibi yazabilirsin:
Reklam
private void simpleButtonKontrol_Click(object sender, EventArgs e)
{
KimlikKontrol(textEdit1.Text);
}
Bu şekilde girdi önce TC kimlik olarak, geçmezse Vergi Numarası olarak kontrol edilir ve arayüz buna göre güncellenir.


