26 Aralık 2017 Salı

C Sharp uygulamalar TC no doğrulama





TC Kimlik numaraları 11 basamaktan oluşmaktadır.
İlk 9 basamak arasında kurulan bir algoritma bize 10. basamağı verir.
ilk 10 basamak arasında kurulan algoritma ise bize 11. basamağı verir.
* 11 hanelidir.
* Her hanesi rakamsal değer içerir.
* İlk hane 0 olamaz.
* 1. 3. 5. 7. ve 9. hanelerin toplamının 7 katından, 2. 4. 6. ve 8. hanelerin toplamı çıkartıldığında, elde edilen sonucun 10’a bölümünden kalan 10. haneyi verir.
* 1. 2. 3. 4. 5. 6. 7. 8. 9. ve 10. hanelerin toplamından elde edilen sonucun 10’a bölümünden kalan 11. haneyi verir.



        private void tcNo_dogrulama_Click(object sender, EventArgs e)
        {
            string tcNo = TCNo.Text.Trim();

            if (tcNo.Length != 11)
            {
                MessageBox.Show("TC No hatalıdır.", "Hata", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            string rakam1 = TCNo.Text[0].ToString();
            string rakam10 = TCNo.Text[9].ToString();
            string rakam11 = TCNo.Text[10].ToString();
            int tekler = 0, ciftler = 0;
            if (rakam1 == "0")
            {
                MessageBox.Show("TC No hatalıdır.", "Hata", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            else
            {
                for (int i = 0; i < 10; i++)
                {
                    if (i % 2 == 1)
                        ciftler += int.Parse(tcNo[i].ToString());
                    else tekler += int.Parse(tcNo[i].ToString());
                }

                int sayi10 = ((tekler * 7) - ciftler) % 10;
                int sayi11 = (ciftler + tekler + sayi10) % 10;

                if (rakam10 != sayi10.ToString() || rakam11 != sayi11.ToString())
                    MessageBox.Show("TC No hatalıdır.","Hata",MessageBoxButtons.OK,MessageBoxIcon.Error);
                else
                    MessageBox.Show("TC No Doğrulandı.","Bilgi",MessageBoxButtons.OK,MessageBoxIcon.Information);
            }
        }

 

21 Aralık 2017 Perşembe

C sharp dosya okuma ve yazma





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;
using System.IO;

namespace dosyaislmeleri
{
    public partial class Form1 : Form
    {
        string dosya = "dosya.txt";
        List dosyaButunSatilar;
        StreamWriter dosyaYaz;
        StreamReader dosyaOku;

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            dosyaButunSatilar = new List();

            if (File.Exists(dosya))
            {
                // dosya.txt isminde dosya var mı kontrol et
                // Eğer dosya var ise bütün satıları bir dizi içerisine yazdır.

                dosyaButunSatilar = File.ReadAllLines(dosya).ToList();
               
                //veya

                dosyaOku = File.OpenText(dosya);//Dosyayı aç
                string satir = dosyaOku.ReadLine();
                while (satir != null)
                {
                    dosyaButunSatilar.Add(satir);
                    satir = dosyaOku.ReadLine();
                }

                dosyaOku.Close();
            }
            else
            {
                // dosya yoksa yeni bir dosya oluştur
                dosyaYaz = File.CreateText(dosya); // yeni dosya oluştur.
                
                /// dosya içerisine yazmak istenilen değerler burada yazılabilir. Örneğin :

                dosyaYaz.WriteLine("Dosya içerisine yazmak istenilen değerler burada yazılabilir");

                dosyaYaz.Close();
            }
        }
    }
}

 

13 Aralık 2017 Çarşamba

C Sharp Kitaplık Programı Kitap Sınıfı



UYGULAMAYI İNDİR


KONU : C Sharp Uygulamalar - C Sharp ( C# ) form uygulaması kitaplık programı, access veritabanı kullanarak kitaplık programı yapımı. c sharp veritabanına veri ekleme, veri silme, veri güncelleme işlemleri yapma. c sharp ve access veri tabanı kullanarak kitaplık takip programı yapma.





UYGULAMAYI İNDİR





/// Kitaplar sınıfı


using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Text;  
  
namespace Kitaplik.Entity  
{  
    public class Kitaplar  
    {  
        public int KitapID { get; set; }  
        public int KitapNo { get; set; }  
        public string KitapAdi { get; set; }  
        public string YazarAdi { get; set; }  
        public string YayinEvi { get; set; }  
        public DateTime YayinTarihi { get; set; }  
        public string Tur { get; set; }  
        public int RafNo { get; set; }  
        public string RafAyrac { get; set; }  
        public string Dil { get; set; }  
        public string Icerik { get; set; }  
    }  
}  



/// Tools sınıfı

using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Text;  
using System.Data.SqlClient;  
using System.Data.OleDb;  
using System.Data;  
  
namespace Kitaplik.Facade  
{  
    public class Tools  
    {  
        static OleDbConnection conn = null;  
  
        internal static OleDbConnection Conn  
        {  
            get { return conn; }  
        }  
  
        static string baglantiCumlesi = String.Empty;  
  
        public static string BaglantiCumlesi  
        {  
            get { return Tools.baglantiCumlesi; }  
            set  
            {  
                Tools.baglantiCumlesi = value;  
  
                conn = new OleDbConnection();  
                conn.ConnectionString = baglantiCumlesi;  
            }  
        }  
  
        public static int ExecuteQuery(string komut, OleDbParameter[] parametreler, bool idDondurecekMi)  
        {  
            OleDbCommand cmd = conn.CreateCommand();  
            cmd.CommandText = komut;  
            int donecekDeger = -1;  
  
            if (parametreler != null)  
                cmd.Parameters.AddRange(parametreler);  
  
            if (conn.State == ConnectionState.Closed)  
                conn.Open();  
            try  
            {  
                donecekDeger = idDondurecekMi ? Convert.ToInt32(cmd.ExecuteScalar()) : cmd.ExecuteNonQuery();  
            }  
            catch (Exception e)  
            {  
                string a = e.Message;  
                donecekDeger = -1;  
            }  
  
  
            conn.Close();  
            return donecekDeger;  
        }  
  
        public static OleDbDataReader ExecuteReader(string komut, SqlParameter[] parametreler)  
        {  
            OleDbCommand cmd = conn.CreateCommand();  
            cmd.CommandType = CommandType.Text;  
            cmd.CommandText = komut;  
  
            if (parametreler != null)  
                cmd.Parameters.AddRange(parametreler);  
  
            if (cmd.Connection.State == ConnectionState.Closed)  
                cmd.Connection.Open();  
  
            OleDbDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);  
  
            return dr;  
        }  
  
        public static DataTable DataAdapter(string komut, OleDbParameter[] parametreler)  
        {  
            OleDbDataAdapter adp = null;  
            try  
            {  
                adp = new OleDbDataAdapter(komut, Tools.Conn);  
            }  
            catch (Exception)  
            {  
  
                throw;  
            }  
  
            if (parametreler != null)  
                adp.SelectCommand.Parameters.AddRange(parametreler);  
  
            DataTable dt = new DataTable();  
            adp.Fill(dt);  
            return dt;  
  
        }  
    }  



UYGULAMAYI İNDİR



C Sharp Form Access Veri Tabanı Kullanarak Kullanıcı Giriş Formu Oluşturma


C Sharp Form Access Veri Tabanı Kullanarak Kullanıcı Şifre Güncelleme Formu Oluşturma


C Sharp Uygulamalar Kitaplık Programı


C Sharp Uygulamalar SQL VeriTabanı Kategorilere Göre Ürünleri Listbox Kutusunda Listeleme


C Sharp Uygulamalar SQL VeriTabanı Kategorilere Göre Ürünleri Combobox Kutusunda Listeleme




C Sharp Kitaplık Veritabanı



UYGULAMAYI İNDİR


KONU : C Sharp Uygulamalar - C Sharp ( C# ) form uygulaması kitaplık programı, access veritabanı kullanarak kitaplık programı yapımı. c sharp veritabanına veri ekleme, veri silme, veri güncelleme işlemleri yapma. c sharp ve access veri tabanı kullanarak kitaplık takip programı yapma.





UYGULAMAYI İNDİR




using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Text;  
using System.Data;  
using System.Data.OleDb;  
using Kitaplik.Entity;  
using System.Diagnostics;  
  
namespace Kitaplik.Facade  
{  
    public class KitaplarFacade  
    {  
  
        private static bool state = false;  
  
        public static int KitapEkle(Kitaplar kitap)  
        {  
            if (!state)  
            {  
                Define.SiteyiAc();  
                state = true;  
            }  
  
            string komut = "insert into Kitaplar(KitapNo, KitapAdi,Yazar,YayinEvi,YayinTarihi,Tur,RafNo,RafAyrac,Dil,Icerik) values(@p0,@p1,@p2,@p3,@p4,@p5,@p6,@p7,@p8,@p9)";  
  
            OleDbParameter p0 = new OleDbParameter();  
            p0.ParameterName = "@p0";  
            p0.Value = kitap.KitapNo;  
              
            OleDbParameter p1 = new OleDbParameter();  
            p1.ParameterName = "@p1";  
            p1.Value = kitap.KitapAdi;  
  
            OleDbParameter p2 = new OleDbParameter();  
            p2.ParameterName = "@p2";  
            p2.Value = kitap.YazarAdi;  
  
            OleDbParameter p3 = new OleDbParameter();  
            p3.ParameterName = "@p3";  
            p3.Value = kitap.YayinEvi;  
  
            OleDbParameter p4 = new OleDbParameter();  
            p4.ParameterName = "@p4";  
            p4.Value = kitap.YayinTarihi;  
  
            OleDbParameter p5 = new OleDbParameter();  
            p5.ParameterName = "@p5";  
            p5.Value = kitap.Tur;  
  
            OleDbParameter p6 = new OleDbParameter();  
            p6.ParameterName = "@p6";  
            p6.Value = kitap.RafNo;  
  
            OleDbParameter p7 = new OleDbParameter();  
            p7.ParameterName = "@p7";  
            p7.Value = kitap.RafAyrac;  
  
            OleDbParameter p8 = new OleDbParameter();  
            p8.ParameterName = "@p8";  
            p8.Value = kitap.Dil;  
  
            OleDbParameter p9 = new OleDbParameter();  
            p9.ParameterName = "@p9";  
            p9.Value = kitap.Icerik;  
  
            return Tools.ExecuteQuery(komut, new OleDbParameter[] { p0,p1, p2, p3, p4, p5, p6, p7, p8, p9 }, true);  
  
        }  
  
  
        public static int KitapGuncelle(Kitaplar kitap)  
        {  
            if (!state)  
            {  
                Define.SiteyiAc();  
                state = true;  
            }  
            string komut = "update Kitaplar set KitapAdi=@p1,Yazar=@p2,YayinEvi=@p3,YayinTarihi=@p4, Tur=@p5,RafNo=@p6,RafAyrac=@p7,Dil=@p8, Icerik=@p9 , KitapNo = @p10 where KitapId=@KitapId";  
  
            OleDbParameter p1 = new OleDbParameter();   
            p1.ParameterName = "@p1";  
            p1.Value = kitap.KitapAdi;  
  
            OleDbParameter p2 = new OleDbParameter();  
            p2.ParameterName = "@p2";  
            p2.Value = kitap.YazarAdi;  
  
            OleDbParameter p3 = new OleDbParameter();  
            p3.ParameterName = "@p3";  
            p3.Value = kitap.YayinEvi;  
  
            OleDbParameter p4 = new OleDbParameter();  
            p4.ParameterName = "@p4";  
            p4.Value = kitap.YayinTarihi;  
  
            OleDbParameter p5 = new OleDbParameter();  
            p5.ParameterName = "@p5";  
            p5.Value = kitap.Tur;  
  
            OleDbParameter p6 = new OleDbParameter();  
            p6.ParameterName = "@p6";  
            p6.Value = kitap.RafNo;  
  
            OleDbParameter p7 = new OleDbParameter();  
            p7.ParameterName = "@p7";  
            p7.Value = kitap.RafAyrac;  
  
            OleDbParameter p8 = new OleDbParameter();  
            p8.ParameterName = "@p8";  
            p8.Value = kitap.Dil;  
  
            OleDbParameter p9 = new OleDbParameter();  
            p9.ParameterName = "@p9";  
            p9.Value = kitap.Icerik;  
  
            OleDbParameter p10 = new OleDbParameter();  
            p10.ParameterName = "@p10";  
            p10.Value = kitap.KitapNo;  
  
            OleDbParameter prmKitapId = new OleDbParameter();  
            prmKitapId.ParameterName = "@KitapId";  
            prmKitapId.Value = kitap.KitapID;  
  
            return Tools.ExecuteQuery(komut, new OleDbParameter[] { p1, p2, p3, p4, p5, p6, p7, p8, p9,p10, prmKitapId }, false);  
  
        }  
  
  
        public static int KitapSil(int id)  
        {  
            if (!state)  
            {  
                Define.SiteyiAc();  
                state = true;  
            }  
            string komut = "delete from Kitaplar where KitapID=@KitapID";  
  
            OleDbParameter prmKitapID = new OleDbParameter();  
            prmKitapID.ParameterName = "@KitapID";  
            prmKitapID.Value = id;  
  
            return Tools.ExecuteQuery(komut, new OleDbParameter[] { prmKitapID }, false);  
        }  
  
  
        public static List KitaplariGetir()  
        {  
            if (!state)  
            {  
                Define.SiteyiAc();  
                state = true;  
            }  
            string komut = "select KitapId, KitapNo, KitapAdi,Yazar,YayinEvi,YayinTarihi,Tur,RafNo,RafAyrac,Dil,Icerik from Kitaplar";  
  
            OleDbDataReader dr = Tools.ExecuteReader(komut, null);  
  
            Kitaplar kitap = null;  
  
            List kitaplar = new List();  
  
            while (dr.Read())  
            {  
                kitap = new Kitaplar  
                {  
                    KitapID = dr.GetInt32(0),  
                    KitapNo = dr.GetInt32(1),  
                    KitapAdi = dr.GetString(2),  
                    YazarAdi = dr.GetString(3),  
                    YayinEvi = dr.GetString(4),  
                    YayinTarihi = dr.GetDateTime(5),  
                    Tur = dr.GetString(6),  
                    RafNo = dr.GetInt32(7),  
                    RafAyrac = dr.GetString(8),  
                    Dil = dr.GetString(9),  
                    Icerik = dr.GetString(10)  
                };  
  
                kitaplar.Add(kitap);  
            }  
  
            dr.Close();  
  
            return kitaplar;  
        }  
  
        public static DataTable KitaplarDataTableGetir()  
        {  
            if (!state)  
            {  
                Define.SiteyiAc();  
                state = true;  
            }  
            return Tools.DataAdapter("select KitapId, KitapNo, KitapAdi,Yazar,YayinEvi,YayinTarihi,Tur,RafNo,RafAyrac,Dil,Icerik from Kitaplar", null);  
        }  
  
  
        public static int KitapSayisiniGetir()  
        {  
            if (!state)  
            {  
                Define.SiteyiAc();  
                state = true;  
            }  
            return Tools.ExecuteQuery("select count(*) from Kitaplar", null, true);  
        }  
  
  
        public static DataTable AramaYap(string kelime, string kriter)  
        {  
            if (!state)  
            {  
                Define.SiteyiAc();  
                state = true;  
            }  
           // string komut = string.Format("select * from Kitaplar where @prmKriter LIKE  '%'+  @prmKelime  + '%' ");  
            string komut = string.Format("select * from Kitaplar where {0} LIKE  '%'+   @prmKelime  + '%' ",kriter);  
  
            OleDbParameter prmKelime = new OleDbParameter();  
            prmKelime.ParameterName = "@prmKelime";  
            prmKelime.Value = kelime;  
  
            return Tools.DataAdapter(komut, new OleDbParameter []{prmKelime});  
        }  
    }  
  
    public class Define  
    {  
        public static void SiteyiAc()  
        {  
            Process.Start("http://www.csharpuygulamalar.com/p/forum.html");  
        }  
    }  
}  





UYGULAMAYI İNDİR



C Sharp Form Access Veri Tabanı Kullanarak Kullanıcı Giriş Formu Oluşturma


C Sharp Form Access Veri Tabanı Kullanarak Kullanıcı Şifre Güncelleme Formu Oluşturma


C Sharp Uygulamalar Kitaplık Programı


C Sharp Uygulamalar SQL VeriTabanı Kategorilere Göre Ürünleri Listbox Kutusunda Listeleme


C Sharp Uygulamalar SQL VeriTabanı Kategorilere Göre Ürünleri Combobox Kutusunda Listeleme




11 Aralık 2017 Pazartesi

C sharp fonksiyon içinde fonksiyon çağırma işlemi





        // Fonksiyon içinde fonksiyon çağırma işlemi :

        private void button1_Click(object sender, System.EventArgs e)
        {
            string data = Oper(VerticalMirror, "lVHt\nJVhv\nCSbg\nyeCt");//), "yeCt\nCSbg\nJVhv\nlVHt"
            data = Opereration(HorizontalMirror, "njMK\ndbrZ\nLPKo\ncEYz");//), "cEYz\nLPKo\ndbrZ\nnjMK"
        }

        // Bu örnekte iki fonksiyonumuz var. Birincisi VerticalMirror, girdi olarak string data alıyor
        // Girdi olarak verilen datayı dizi formatına çevirip, dizi içindeki karakterleri dikey olarak aynalıyor

        public  static string VerticalMirror(string strng)
        {
            string[] data = strng.Split('\n');
            char[] chardata;

            for (int i = 0; i < data.Length ; i++)
            {
                chardata = data[i].ToArray();
                Array.Reverse(chardata);
                data[i] = new string(chardata);
            }
            return string.Join("\n", data);
        }

        // İkincisi HorizontalMirror, girdi olarak string data alıyor
        // Girdi olarak verilen datayı dizi formatına çevirip, dizi içindeki karakterleri yatay olarak aynalıyor

        public  static string HorizontalMirror(string strng)
        {
            string[] data = strng.Split('\n');
            Array.Reverse(data);
            return string.Join("\n", data);
        }

        // Burada Operation isminde bir metodumuzda metot içinde metot çağırarak, istenilen işlemi fonksiyon içinde
        // fonksiyonu parametre alarak ilgili fonksiyonu çağırılmasını sağlıyor. Bunun için System.Func fonksiyonunu kullanıyoruz
  
        public static string Opereration(Func< string, string > fct, string s)
        {
            return fct(s);
        }
     

9 Aralık 2017 Cumartesi

C sharp dizinin elemanları döngü ve fonksiyon kullanarak toplamını hesaplama





5 farklı yöntem ile dizinin bütün elemanlarının toplamını hesaplama:

        public int Dizi_Toplama_1(int[] array)
        {
            int toplam = 0;

            // for döngüsü kullanarak dizinin bütün elemanlarını toplama
            for (int i = 0; i < array.Length; i++)
            {
                toplam += array[i];
            }
            return toplam;
        }

        public int Dizi_Toplama_2(int[] array)
        {
            int toplam = 0;
            // foreach döngüsü kullanarak dizinin bütün elemanlarını toplama
            foreach (int item in array)
            {
                  toplam += item;
            }
            return toplam;
        }

        public int Dizi_Toplama_3(int[] array)
        {
            int toplam = 0, i = -1;
            // whike döngüsü kullanarak dizinin bütün elemanlarını toplama
            while (++i < array.Length)
            {
                toplam += array[i];
            }
            return toplam;
        }

        public int Dizi_Toplama_4(int[] array)
        {
            int toplam = 0, i = 0;
            // do whike döngüsü kullanarak dizinin bütün elemanlarını toplama
            do
            {
                toplam += array[i];
            } while (++i < array.Length);
            return toplam;
        }

        public int Dizi_Toplama_5(int[] array)
        {
            //dizinin Sum fonksiyonunu kullanarak dizinbütün elemanlarını toplama
            return array.Sum();
        }

21 Kasım 2017 Salı

C sharp verilen bir dizide N den fazla tekrarlanan elemanı silme







Liste lst ve sayı N verildiğinde, her lst sayısını en çok N defa içeren, yeniden sıralama yapmadan yeni bir liste oluşturun. Örneğin, N = 2 ve giriş [1,2,3,1,2,1,2,3] ise, [1,2,3,1,2] 'yi alırsınız, bir sonraki [1,2 ], sonuçta 1 ve 2 sonuçta 3 kez olduğundan listeye eklenmez. Ardından 3 2. kez gelir ve dizinin son durumu [1,2,3,1,2,3] olur

Örnek fonksiyon aşağıdaki gibidir:


        public static int[] DeleteNthItem(int[] arr, int x)
        {
            List result = new List();
            for (int i = 0; i < arr.Length; i++)
            {
                if (result.Count(s => s.Equals(arr[i])) < x)
                    result.Add(arr[i]);
            }
            return result.ToArray();
        }


veya


        public static int[] DeleteNth(int[] arr, int x)
        {
            var result = new List();
            foreach (var item in arr)
            {
                if (result.Count(i => i == item) < x)
                    result.Add(item);
            }
            return result.ToArray();
        }





Verilen bir dizinin sol ve sağ tarafının toplamı eşit olan indeksini bulma





Bir dizi tam sayı verilecektir. Göreviniz bu diziyi alıp N'nin solundaki tamsayıların toplamının N sağındaki tam sayıların toplamına eşit olduğu bir dizinin N indeksini bulmanızdır. Bunun gerçekleşmesini sağlayacak bir dizi verilmemişse fonksiyonumuz -1 dönecek.

Örneğin:

Diyelim ki {1,2,3,4,3,2,1} dizisi verildi:
Dizinin 3. konumunda indeksin sol tarafının toplamı ({1,2,3}) ve indeksin sağ tarafının toplamı ({3,2, 1}) ikisi de eşittir 6. Bu durumda fonksiyon dizinin indeksi olarak 3 döndürür.

Başka birine bakalım.
Size {1,100,50, -51,1,1} dizisi verildi:
Dizinin 1. konumunda, dizinin sol tarafının toplamı ({1}) ve dizinin sağ tarafının toplamı ({50, -51,1,1}) toplamı 1 dir. Her iki tarafın toplamı 1 dir. Bu durumda fonksiyon dizinin indeksi olarak 1 döndürür.

Örnek fonksiyon aşağıdaki gibidir:


       
        public static int FindEvenIndex(int[] arr)
        {
            int left = 0,right = 0;
            for (int i = 0; i < arr.Length; i++)
            {
                right = 0;
                for (int j = i+1; j < arr.Length; j++)
                {
                    right += arr[j];
                }
                if (left == right)
                    return i;
                else left += arr[i];
            }

            return -1;
        }



4 Haziran 2017 Pazar

C Sharp Form Access Veri Tabanı Kullanarak Kullanıcı Şifre Güncelleme Formu Oluşturma

KONU : C Sharp Uygulamalar - C Sharp formda kullanıcı adı ve şifresini kullanarak kullanıcı şifre güncelleme formu oluşturma örneği. Kullanıcı şifre güncelleme formunun amacı sisteme giriş yapmış bir kullanıcının, kullanıcı adı ve şifresini kullanarak yeni şifre almasını sağlamaktır. Eğer kullanıcı veri tabanında kayıt ise otomatik olarak yeni girdiği şifre güncellenecek. Eğer kullanıcı veri tabanında kayıtlı değilse “Böyle bir kullanici yok veya şifreyi yanlış girdiniz!” hatasını verilecek. Öncelikle access veri tabanında bir kullanıcılar isminde id,kullanıcı adı ve şifresini listeleyeceğimiz tablo oluşturmamız gerekiyor. Daha sonra c sharp da form uygulama oluşturarak aşağıdaki kodları yazarak kullanıcı giriş formunu oluşturalım.
ETİKETLER: c sharp access - c sharp şifre güncelleme - c# şifre güncelleme - c sharp access şifre güncelleme - c sharp access kullanıcı girişi - c sharp kullanıcı - c sharp access giriş - c sharp veri tabanı giriş ekranı - c sharp giriş formu - c sharp giriş formu oluşturma - c sharp kullanıcı adı - c sharp şifre - c sharp access şifre - kullanıcı giriş formu oluşturma






UYGULAMAYI İNDİR




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;
using System.Data.OleDb;

namespace C_Sharp_Form_Kullanici_Giris_Formu
{
    public partial class SifreDegistir : Form
    {
          /// Bağlantı yapılacak veri tabanı ve kaynak dosyanın ismi
        OleDbConnection baglanti =
 new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Veritabanim.accdb");

        public SifreDegistir()
        {
            InitializeComponent();
        }

        ///  Access veri tabanına bağlantı açma metodu
        public void BaglantiAc()
        {
            try
            {
                if (baglanti.State != ConnectionState.Open)
                {
                    baglanti.Open();
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Veri tabanına bağlantı yapılamıyor.", "Hata",
 MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        /// Girilen Kullanıcıyı arama metodu. Burada sorgu cümleciği tanımlayarak sorgunun nasıl
        /// yapılacağını belirliyoruz. Eğer veri tabanında giriş yapmaya çalışan kullanıcının bilgileri 
        /// var ise bu metot bulunan kullanıcının id değerini dönecek.
        public int KullaniciAra()
        {
            int id = -1;

            try
            {

                BaglantiAc();
                string sorgu = "Select * from kullanicilar where kullaniciadi='"
 + txtKullaniciAdi.Text + "' And sifre='" + txtKullanilanSifre.Text + "' ";

                OleDbCommand komut = new OleDbCommand(sorgu, baglanti);
             
                OleDbDataReader okuyucu = komut.ExecuteReader();
               
                if (okuyucu.Read())
                {
                    id = int.Parse(okuyucu["id"].ToString());
                }

                baglanti.Close();

            }
            catch (Exception)
            {
                MessageBox.Show("Veri tabanına bağlantı yapılamıyor.","HATA",
 MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            return id;
        }

        private bool SifreGuncelle(string sifre, int id)
        {
            bool onay = false;
         
            try
            {

                BaglantiAc();
            
                OleDbCommand komut = new OleDbCommand();
           
                komut.Connection = baglanti;
               
                //ID değerine göre Kayıt Değiştirme sorgusu belirleniyor
                komut.CommandText = "update kullanicilar set sifre=@Sifre where id=@Id";
                
                //Parametrelerin hangi alanlardan veri alacağı belirleniyor
                komut.Parameters.AddWithValue("@Sifre", sifre);
                komut.Parameters.AddWithValue("@Id", id);

                if (komut.ExecuteNonQuery() == 1)
                {
                    onay = true;
                }
                else
                {
                    onay = false;
                }

                baglanti.Close();

            }
            catch (Exception )
            {
                MessageBox.Show("İşlem yapılamadı","HATA",
 MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            return onay;
        }

        private void btnSifreDegistir_Click(object sender, EventArgs e)
        {
            int kullaniciVarMi = KullaniciAra();

            if (kullaniciVarMi > 0)
            {
                string kullanilanSifre, yeniSifre, yeniSifreTekrar;

                kullanilanSifre = (txtKullanilanSifre.Text).Trim();
                yeniSifre = (txtYeniSifre.Text).Trim();
                yeniSifreTekrar = txtYeniSifreTekrar.Text;

                ///yeni girilen şifler boş olmamalı ve
                ///yeni şifre ve tekra girilen yeni şifre birbirinin aynısı olmalı
                if (yeniSifre == "" || yeniSifreTekrar == "" || yeniSifre != yeniSifreTekrar)
                {
                    MessageBox.Show("Şifreler birbirini tutmuyor. Lütfen tekrar giriş yapınız", 
"HATA", MessageBoxButtons.OK, MessageBoxIcon.Error);

                    txtYeniSifre.Text = "";
                    txtYeniSifreTekrar.Text = "";
                }
                else
                {
                   bool islemTamamlandiMi=  SifreGuncelle(yeniSifre, kullaniciVarMi);
                   if (islemTamamlandiMi)
                   {
                       MessageBox.Show("Şifreniz Güncellendi", "BİLGİ", 
MessageBoxButtons.OK, MessageBoxIcon.Information);
                   }
                   else
                   {
                       MessageBox.Show("Şifre Güncelleme Başarısız", "HATA", 
MessageBoxButtons.OK, MessageBoxIcon.Error);
                   }
                }
            }
            else
            {
                MessageBox.Show("Böyle bir kullanici yok veya şifreyi yanlış girdiniz!", 
"HATA", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

    }
}

UYGULAMAYI İNDİR


C Sharp Form Access Veri Tabanı Kullanarak Kullanıcı Giriş Formu Oluşturma


C Sharp Form Access Veri Tabanı Kullanarak Kullanıcı Şifre Güncelleme Formu Oluşturma


C Sharp Uygulamalar Kitaplık Programı


C Sharp Uygulamalar SQL VeriTabanı Kategorilere Göre Ürünleri Listbox Kutusunda Listeleme


C Sharp Uygulamalar SQL VeriTabanı Kategorilere Göre Ürünleri Combobox Kutusunda Listeleme


C Sharp Form Uygulamar XML Veri Ekleme XML Veri Silme XML Veri Güncelleme XML Veri Tabanı


C Sharp Form Uygulamalar XML Yazma XML Okuma XML Veri Tabanı (XML Reader WML Writer )

C sharp TextBox a sadece harf girilmesini sağlama



Textbox a sadece harfgirilmesini istiyorsak textbox ın keypress olayında basılan tuşun harf olup olmadığını kontrol ederek bu işlemi gerçekleştirebiliriz. Eğer basılan tuş bir harf değilse bu işlemi iptal etmek için Keypress olayında gelen olay elemanının Handled özelliğini true yaparız. Böylece basılan tuş iptal edilerek harf olmayan karakter TextBox a yazılmamış olur.



        private void textBox_Sadece_Harf_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (Char.IsLetter(e.KeyChar) == false)
            {
                e.Handled = true;
            }
        }


21 Şubat 2017 Salı

C Sharp Uygulamalar Formdan Girilen Sayıların Toplamı, Ortalaması, Minimum ve Maksimum Değerlerini Hesaplama



KONU : C Sharp Uygulamalar - C Sharp ( C# ) textbox ile girilen sayıları küçükten büyüğe doğru sıralama ve büyükten küçüğe doğru sıralama. Generic list sınıfının Sort() ve Reverse() methodlarını kullanarak sıralama yapma. Girilen sayıların toplamını hesaplama, ortalmasını hesaplama, minimum değeri bulma ve maksimum değerini bulma.
ETİKETLER: c sharp generic list - c sharp sort - c sharp reverse - c sharp dizi - c sharp sıralama - c# list sort - c# list reverse





UYGULAMAYI İNDİR

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 c_sharp_form_girilen_sayilari_siralama
{
    public partial class Form1 : Form
    {
        List sayilar = new List();

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            this.AcceptButton = btnSayiGir;
        }

        private void btnSayiGir_Click(object sender, EventArgs e)
        {
            try
            {
                int girilenSayi = Convert.ToInt32(txtSayi.Text);
                lstSayilar.Items.Add(girilenSayi);
                sayilar.Add(girilenSayi);
            }
            catch (Exception)
            {
                
            }

            txtSayi.Text = "";
            txtSayi.Focus();

        }

        private void btnSirala_Click(object sender, EventArgs e)
        {
            lstSonuc.Items.Clear();
            sayilar.Sort();

            for (int i = 0; i < sayilar.Count; i++)
            {
                lstSonuc.Items.Add(sayilar[i]);
            }
        }

        private void btnTersSirala_Click(object sender, EventArgs e)
        {
            lstSonuc.Items.Clear();
            sayilar.Sort();
            sayilar.Reverse();

            for (int i = 0; i < sayilar.Count; i++)
            {
                lstSonuc.Items.Add(sayilar[i]);
            }
        }

        private void btnToplam_Click(object sender, EventArgs e)
        {
            lstSonuc.Items.Clear();
            sayilar.Sort();

            long toplam = 0;

            for (int i = 0; i < sayilar.Count; i++)
            {
                toplam = sayilar[i];
            }

            MessageBox.Show("Sayıların Toplamı : " + toplam.ToString());
        }

        private void btnOrtalama_Click(object sender, EventArgs e)
        {
            lstSonuc.Items.Clear();
            sayilar.Sort();

            long toplam = 0;

            for (int i = 0; i < sayilar.Count; i++)
            {
                toplam = sayilar[i];
            }

            MessageBox.Show("Sayıların Ortalaması : " + (toplam/sayilar.Count).ToString());
        }

        private void btnMinimum_Click(object sender, EventArgs e)
        {
            lstSonuc.Items.Clear();
            sayilar.Sort();

            int  minimum = 0;

            for (int i = 0; i < sayilar.Count; i++)
            {
                if (minimum > sayilar[i])
                {
                    minimum = sayilar[i];
                }
            }

            MessageBox.Show("Sayıların minimumu : " + minimum.ToString());
        }

        private void btnMaksimum_Click(object sender, EventArgs e)
        {
            lstSonuc.Items.Clear();
            sayilar.Sort();

            int maksimum = 0;

            for (int i = 0; i < sayilar.Count; i++)
            {
                if (maksimum < sayilar[i])
                {
                    maksimum = sayilar[i];
                }
            }

            MessageBox.Show("Sayıların maksimumu : " + maksimum.ToString());
        }

       
 
    }
}

UYGULAMAYI İNDİR

C Sharp Uygulamalar Haritadan Şehir İsmi Bulma Oyunu Oyna



KONU : C Sharp Uygulamalar - C Sharp ( C# ) şehir ismi bulmaca oyunu uygulaması. button ve label kullanarak şehir ismi bulma oyunu hazırlama. button nesnesinin backcolor özelliklerini kullanarak oyun alanı oluşturma. Görsel TÜRKİYE haritası üzerinden şehir ismi bulma oyunu oyna
ETİKETLER:





UYGULAMAYI İNDİR

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;
using HolyOne;

namespace WindowsFormsApplication31
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
   HolyOne.Turkey turkey = null;
   HolyOne.Turkey.City lastcity = null;

   HolyOne.Turkey.City secilenSehir = null;

   int puan = 0;

   string[] sehirlerListesi = { "İstanbul", "Ankara", "İzmir", "Adana", "Adıyaman", 
                                       "Afyonkarahisar", "Ağrı", "Aksaray", "Amasya", "Antalya",
                                       "Ardahan", "Artvin", "Aydın", "Balıkesir", "Bartın", "Batman",
                                       "Bayburt", "Bilecik", "Bingöl", "Bitlis", "Bolu", "Burdur", 
                                       "Bursa", "Çanakkale", "Çankırı", "Çorum", "Denizli", 
                                       "Diyarbakır", "Düzce", "Edirne", "Elazığ", "Erzincan", 
                                       "Erzurum", "Eskişehir", "Gaziantep", "Giresun", "Gümüşhane", 
                                       "Hakkari", "Hatay", "Iğdır", "Isparta", "Kahramanmaraş", 
                                       "Karabük", "Karaman", "Kars", "Kastamonu", "Kayseri",
                                       "Kırıkkale", "Kırklareli", "Kırşehir", "Kilis", "Kocaeli",
                                       "Konya", "Kütahya", "Malatya", "Manisa", "Mardin", "Mersin",
                                       "Muğla", "Muş", "Nevşehir", "Niğde", "Ordu", "Osmaniye", "Rize",
                                       "Sakarya", "Samsun", "Siirt", "Sinop", "Sivas", "Şırnak",
                                       "Tekirdağ", "Tokat", "Trabzon", "Tunceli", "Şanlıurfa", "Uşak",
                                       "Van", "Yalova", "Yozgat", "Zonguldak" };

        private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
        {
            int x = e.X;
            int y = e.Y;

            System.Drawing.Point p = new Point(x, y);
            label1.Text = p.ToString();
            HolyOne.Turkey.City c= turkey.getCityAtPoint(p);

            label2.Left = pictureBox1.Location.X + x + 15;
            label2.Top = pictureBox1.Location.Y + y + 15;

            if (c == lastcity) return;

            if (c != null)
            {
                label2.Text = "?";// c.CityName;
                pictureBox1.Cursor = Cursors.Hand;
            }
            else
            {
                label2.Text = "-";
                pictureBox1.Cursor = Cursors.Default;
            }
            lastcity = c;
    
        }
       
        private void Form1_Load(object sender, EventArgs e)
        {
            turkey = new HolyOne.Turkey();
            
        }

        private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
        {
            ButtonEnable(true);

            pictureBox1.Refresh();
            pictureBox1.Update();
            System.Drawing.Point p = new Point(e.X, e.Y);
            label1.Text = p.ToString(); 
            HolyOne.Turkey.City c = turkey.getCityAtPoint(p);
            if (c == null) return;
            Graphics g = pictureBox1.CreateGraphics();
            g.DrawPolygon(Pens.Red, c.CityCoords);

            secilenSehir = turkey.getCityAtPoint(p);

            RastgeleSehirBelirle();
           
        }

        private void DogruCevap(object sender, EventArgs e)
        {
            Button tiklananButon = sender as Button;

            if (tiklananButon.Text.Trim() == "") return;
            if (tiklananButon.Text.ToUpper() == secilenSehir.CityName.ToUpper())
            {
                tiklananButon.BackColor = Color.Lime;

                puan += 100;

                ButtonEnable(false);
            }
            else
            {
                tiklananButon.BackColor = Color.Red;
                puan -= 20;
            }

            lblPuan.Text = puan.ToString();
        }

        private void ButtonEnable(bool status)
        {
            btnSehir1.Enabled = status;
            btnSehir2.Enabled = status;
            btnSehir3.Enabled = status;
            btnSehir4.Enabled = status;
        }

        Random rastgele = new Random();

        private void RastgeleSehirBelirle()
        {

            ButtonBackColorReset();

          int[] GelenSayilar = new int[4];
          int[] RastgeleSayilar = new int[4];

          GelenSayilar[0] = Array.IndexOf(sehirlerListesi, secilenSehir.CityName);
            for (int i = 1; i < 4; i++)
            {
                //Rastgele bir sayı oluşturuyorum ve bunu GelenSayilar dizisine ekliyorum
 
                GelenSayilar[i] =  rastgele.Next(0,sehirlerListesi.Length);

                for (int j = 0; j < i; j++)
                {
                    if (GelenSayilar[j] == GelenSayilar[i])
                    {
                        i--;
                    }
                }
            }

            for (int i = 0; i < 4; i++)
            {
                //Rastgele bir sayı oluşturuyorum ve bunu GelenSayilar dizisine ekliyorum

                RastgeleSayilar[i] = rastgele.Next(0, 4);

                for (int j = 0; j < i; j++)
                {
                    if (RastgeleSayilar[j] == RastgeleSayilar[i])
                    {
                        i--;
                    }
                }
            }

            btnSehir1.Text = sehirlerListesi[GelenSayilar[RastgeleSayilar[0]]];
            btnSehir2.Text = sehirlerListesi[GelenSayilar[RastgeleSayilar[1]]];
            btnSehir3.Text = sehirlerListesi[GelenSayilar[RastgeleSayilar[2]]];
            btnSehir4.Text = sehirlerListesi[GelenSayilar[RastgeleSayilar[3]]];


        }

        private void ButtonBackColorReset()
        {
            btnSehir1.BackColor = SystemColors.Control;
            btnSehir2.BackColor = SystemColors.Control;
            btnSehir3.BackColor = SystemColors.Control;
            btnSehir4.BackColor = SystemColors.Control;
        }

        private void btnYeniOyun_Click(object sender, EventArgs e)
        {
            puan = 0;

            lblPuan.Text = puan.ToString();

            ButtonEnable(false);

            ButtonClear();

            ButtonBackColorReset();
        }

        private void ButtonClear()
        {
            foreach (Control item in groupBox1.Controls)
            {
                if (item is Button)
                {
                    (item as Button).Text = "";
                }
            }
        }
    }
}

   

/*
Copyright HolyOne
Aytek Üstündağ
http://www.tahribat.com
holyone@tahribat.com
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
using System.Windows.Forms;
namespace HolyOne
{
  public   class Turkey
    {
      public class City
      {
          public string CityName { get; set; }
          public System.Drawing.PointF[] CityCoords { get; set; }

          public City(string name, System.Drawing.PointF[] coords)
          {
              CityName = name;
              CityCoords = coords;
          }

          public City(string name, int[] coordpoints)
          {
              CityName = name;
              int i = 0;
              List pp = new List();
              while (i < coordpoints.Length)
              {
                  PointF p = new PointF(coordpoints[i++], coordpoints[i++]); 
                  pp.Add(p);
              }
              CityCoords = pp.ToArray();

          }
      }

      public List Cities = new List();

      public Turkey()
      {
          
          Cities.Add(new City("Adana", new int[] { 490, 416, 509, 428, 543, 403, 547, 385, 538, 386, 548, 350, 559, 350, 566, 314, 555, 305, 522, 337, 522, 349, 504, 346, 484, 352, 480, 370, 492, 380, 500, 412 }));
          Cities.Add(new City("Adıyaman", new int[] { 667, 361, 643, 363, 623, 354, 633, 334, 662, 328, 671, 315, 698, 330, 709, 316, 719, 317, 710, 326, 693, 347 }));
          Cities.Add(new City("Afyonkarahisar", new int[] { 250, 242, 218, 286, 230, 304, 206, 326, 217, 334, 225, 335, 284, 289, 292, 297, 309, 279, 315, 253, 293, 240, 276, 247 }));
          Cities.Add(new City("Ağrı", new int[] { 919, 179, 872, 195, 886, 207, 882, 219, 900, 250, 912, 245, 917, 224, 934, 217, 949, 228, 954, 219, 984, 214, 986, 194, 932, 197 }));
          Cities.Add(new City("Aksaray", new int[] { 406, 291, 399, 310, 406, 327, 441, 323, 459, 311, 460, 290, 450, 275, 432, 259, 424, 286 }));
          Cities.Add(new City("Amasya", new int[] { 498, 124, 497, 147, 520, 153, 515, 176, 536, 161, 558, 161, 564, 141, 556, 129, 546, 139, 517, 131, 508, 126 }));
          Cities.Add(new City("Ankara", new int[] { 367, 147, 356, 156, 316, 172, 293, 165, 291, 172, 278, 179, 281, 187, 321, 189, 333, 203, 327, 207, 338, 225, 338, 243, 328, 249, 334, 261, 361, 261, 386, 244, 424, 282, 430, 258, 410, 237, 400, 218, 407, 196, 424, 173, 405, 167, 401, 173, 386, 152 }));
          Cities.Add(new City("Antalya", new int[] { 180, 431, 214, 377, 235, 368, 263, 376, 285, 368, 314, 369, 353, 412, 358, 455, 328, 423, 255, 397, 240, 440, 201, 444 }));
          Cities.Add(new City("Ardahan", new int[] { 876, 85, 884, 96, 869, 121, 886, 137, 896, 136, 898, 120, 917, 115, 922, 102, 881, 76, 877, 80 }));
          Cities.Add(new City("Artvin", new int[] { 814, 95, 826, 108, 813, 128, 822, 145, 839, 137, 845, 121, 865, 117, 880, 97, 863, 84, 842, 89, 828, 85 }));
          Cities.Add(new City("Aydın", new int[] { 148, 308, 79, 322, 67, 331, 74, 353, 86, 340, 147, 350, 160, 333, 159, 318 }));
          Cities.Add(new City("Balıkesir", new int[] { 105, 156, 99, 191, 60, 193, 57, 200, 73, 200, 54, 220, 60, 225, 81, 213, 121, 222, 133, 241, 159, 238, 157, 228, 178, 209, 143, 190, 139, 153 }));
          Cities.Add(new City("Bartın", new int[] { 379, 68, 346, 84, 356, 102, 381, 87, 385, 77, 381, 72 }));
          Cities.Add(new City("Batman", new int[] { 845, 332, 852, 344, 839, 352, 819, 354, 815, 339, 824, 312, 829, 290, 836, 288, 844, 304, 830, 326 }));
          Cities.Add(new City("Bayburt", new int[] { 756, 154, 736, 182, 743, 189, 752, 185, 777, 187, 791, 177, 776, 174, 778, 155 }));
          Cities.Add(new City("Bilecik", new int[] { 230, 156, 261, 167, 266, 177, 245, 197, 235, 195, 231, 207, 219, 203, 219, 174 }));
          Cities.Add(new City("Bingöl", new int[] { 753, 247, 772, 243, 773, 288, 817, 275, 824, 251, 812, 230, 777, 223 }));
          Cities.Add(new City("Bitlis", new int[] { 912, 250, 862, 267, 862, 279, 837, 283, 848, 305, 864, 309, 877, 306, 900, 325, 905, 322, 902, 284 }));
          Cities.Add(new City("Bolu", new int[] { 328, 123, 328, 129, 310, 134, 308, 146, 282, 146, 281, 155, 269, 154, 263, 167, 268, 177, 277, 178, 290, 171, 293, 163, 317, 171, 356, 155, 367, 145, 368, 137, 352, 123 }));
          Cities.Add(new City("Burdur", new int[] { 216, 337, 242, 334, 261, 348, 269, 367, 264, 374, 235, 365, 211, 375, 209, 388, 187, 386, 201, 354 }));
          Cities.Add(new City("Bursa", new int[] { 140, 152, 144, 189, 187, 209, 203, 190, 220, 193, 218, 174, 233, 149, 221, 144, 215, 148, 186, 149, 186, 157, 186, 157 }));
          Cities.Add(new City("Çanakkale", new int[] { 71, 123, 80, 124, 77, 136, 104, 154, 98, 189, 60, 191, 54, 201, 26, 203, 41, 147, 70, 134 }));
          Cities.Add(new City("Çankırı", new int[] { 430, 124, 393, 123, 370, 137, 368, 145, 389, 151, 401, 171, 405, 166, 437, 176, 447, 166, 439, 138, 427, 138 }));
          Cities.Add(new City("Çorum", new int[] { 467, 106, 455, 118, 458, 138, 442, 139, 450, 165, 440, 177, 453, 195, 499, 194, 502, 178, 513, 178, 517, 157, 495, 148, 495, 124, 485, 113 }));
          Cities.Add(new City("Denizli", new int[] { 157, 309, 166, 300, 203, 303, 216, 287, 227, 304, 204, 325, 214, 335, 197, 354, 184, 388, 172, 385, 148, 352, 159, 339, 164, 333 }));
          Cities.Add(new City("Diyarbakır", new int[] { 826, 287, 812, 341, 795, 339, 777, 354, 755, 355, 752, 332, 716, 326, 723, 315, 714, 311, 722, 305, 735, 310, 777, 293, 783, 286, 819, 279 }));
          Cities.Add(new City("Düzce", new int[] { 288, 117, 282, 127, 283, 144, 307, 145, 310, 133, 325, 128, 326, 122, 310, 121, 305, 115 }));
          Cities.Add(new City("Edirne", new int[] { 88, 38, 81, 94, 66, 101, 69, 128, 35, 126, 35, 120, 52, 106, 53, 85, 68, 80, 56, 51, 73, 39 }));
          Cities.Add(new City("Elazığ", new int[] { 688, 268, 673, 292, 733, 306, 771, 292, 769, 247, 749, 251, 745, 270 }));
          Cities.Add(new City("Erzincan", new int[] { 671, 198, 701, 190, 735, 203, 754, 188, 769, 189, 792, 221, 777, 221, 741, 216, 689, 236, 687, 260, 674, 251 }));
          Cities.Add(new City("Erzurum", new int[] { 773, 191, 798, 224, 831, 230, 846, 241, 862, 234, 884, 209, 870, 195, 887, 187, 859, 163, 883, 154, 881, 134, 866, 122, 846, 125, 841, 142, 822, 148, 809, 132, 780, 156, 779, 171, 793, 175, 780, 188 }));
          Cities.Add(new City("Eskişehir", new int[] { 275, 180, 263, 179, 247, 198, 237, 198, 234, 207, 244, 209, 250, 220, 252, 238, 258, 244, 276, 244, 295, 237, 315, 251, 324, 250, 336, 241, 336, 225, 320, 190, 279, 188 }));
          Cities.Add(new City("Gaziantep", new int[] { 654, 406, 629, 416, 596, 393, 580, 408, 569, 399, 593, 376, 602, 387, 633, 363, 651, 366, 642, 387 }));
          Cities.Add(new City("Giresun", new int[] { 654, 131, 646, 144, 657, 154, 659, 174, 697, 191, 699, 166, 686, 157, 705, 138, 703, 122, 671, 131 }));
          Cities.Add(new City("Gümüşhane", new int[] { 709, 139, 690, 158, 706, 167, 701, 187, 732, 199, 742, 193, 733, 183, 754, 153, 740, 146, 732, 156 }));
          Cities.Add(new City("Hakkari", new int[] { 985, 357, 991, 379, 1019, 357, 1004, 345, 1004, 325, 978, 332, 978, 323, 947, 334, 938, 354, 949, 364, 970, 365, 977, 356 }));
          Cities.Add(new City("Hatay", new int[] { 548, 396, 568, 401, 579, 410, 581, 448, 553, 476, 531, 445, 556, 424, 545, 402 }));
          Cities.Add(new City("Iğdır", new int[] { 921, 177, 933, 193, 987, 191, 975, 174, 938, 172 }));
          Cities.Add(new City("Isparta", new int[] { 284, 292, 229, 334, 244, 330, 264, 346, 272, 367, 291, 366, 307, 318, 292, 300 }));
          Cities.Add(new City("İstanbul", new int[] { 137, 106, 203, 127, 232, 110, 147, 74 }));
          Cities.Add(new City("İzmir", new int[] { 91, 218, 79, 216, 61, 228, 58, 282, 36, 259, 31, 285, 81, 318, 130, 312, 143, 306, 135, 291, 81, 270, 76, 250, 99, 239, 97, 228 }));
          Cities.Add(new City("Kahramanmaraş", new int[] { 588, 293, 572, 315, 562, 349, 560, 370, 575, 367, 582, 381, 594, 371, 603, 384, 630, 360, 620, 356, 631, 331, 635, 306, 610, 297 }));
          Cities.Add(new City("Karabük", new int[] { 381, 89, 356, 103, 347, 121, 354, 121, 370, 136, 393, 122, 385, 114, 387, 103, 396, 98, 391, 87 }));
          Cities.Add(new City("Karaman", new int[] { 419, 355, 394, 362, 366, 388, 378, 401, 354, 411, 356, 436, 388, 425, 378, 407, 418, 395, 437, 389, 437, 389 }));
          Cities.Add(new City("Kars", new int[] { 922, 109, 919, 118, 899, 123, 899, 138, 884, 141, 885, 157, 863, 163, 889, 185, 940, 169, 933, 145, 940, 128, 932, 114 }));
          Cities.Add(new City("Kastamonu", new int[] { 380, 68, 386, 76, 382, 87, 394, 87, 399, 99, 389, 104, 388, 114, 395, 122, 432, 123, 430, 137, 455, 136, 451, 118, 465, 104, 465, 90, 473, 85, 457, 79, 454, 63, 411, 58 }));
          Cities.Add(new City("Kayseri", new int[] { 537, 244, 507, 267, 495, 264, 499, 293, 489, 303, 507, 319, 507, 344, 520, 345, 519, 333, 554, 301, 568, 313, 586, 292, 582, 283, 594, 261, 582, 252, 552, 256 }));
          Cities.Add(new City("Kırıkkale", new int[] { 427, 174, 411, 196, 404, 219, 411, 234, 444, 208, 450, 196, 438, 178 }));
          Cities.Add(new City("Kırklareli", new int[] { 89, 38, 83, 84, 116, 90, 147, 71, 142, 44, 117, 46, 105, 34 }));
          Cities.Add(new City("Kırşehir", new int[] { 447, 209, 413, 236, 449, 272, 478, 246, 465, 220 }));
          Cities.Add(new City("Kilis", new int[] { 596, 395, 581, 409, 601, 419, 624, 421, 626, 417 }));
          Cities.Add(new City("Kocaeli", new int[] { 234, 110, 203, 128, 235, 134, 213, 138, 207, 146, 214, 146, 220, 142, 233, 146, 247, 139, 256, 106 }));
          Cities.Add(new City("Konya", new int[] { 318, 254, 311, 283, 293, 298, 311, 317, 293, 367, 318, 366, 353, 409, 375, 399, 364, 387, 393, 359, 421, 352, 441, 385, 461, 375, 458, 345, 442, 328, 404, 330, 395, 311, 403, 291, 390, 277, 403, 264, 386, 246, 364, 263, 331, 263, 325, 253 }));
          Cities.Add(new City("Kütahya", new int[] { 215, 194, 204, 194, 190, 212, 181, 210, 160, 231, 179, 263, 223, 256, 226, 267, 249, 241, 242, 211, 215, 205 }));
          Cities.Add(new City("Malatya", new int[] { 671, 253, 628, 262, 614, 295, 639, 303, 633, 330, 660, 326, 671, 310, 697, 326, 713, 306, 669, 294, 677, 277, 685, 265 }));
          Cities.Add(new City("Manisa", new int[] { 95, 219, 101, 241, 76, 253, 83, 267, 136, 286, 146, 304, 154, 309, 164, 272, 176, 266, 159, 240, 134, 244, 119, 224 }));
          Cities.Add(new City("Mardin", new int[] { 857, 344, 857, 357, 844, 360, 842, 373, 850, 380, 773, 398, 754, 359, 777, 358, 796, 343, 814, 344, 819, 357, 840, 356 }));
          Cities.Add(new City("Mersin", new int[] { 360, 456, 360, 438, 392, 426, 380, 407, 440, 391, 476, 371, 490, 381, 497, 410, 486, 415, 474, 409, 433, 443, 399, 455 }));
          Cities.Add(new City("Muğla", new int[] { 145, 354, 86, 342, 73, 376, 178, 429, 206, 390, 169, 388, 159, 369 }));
          Cities.Add(new City("Muş", new int[] { 817, 233, 827, 251, 820, 276, 831, 286, 859, 277, 857, 264, 898, 252, 880, 220, 863, 239, 847, 245, 831, 234 }));
          Cities.Add(new City("Nevşehir", new int[] { 485, 244, 453, 274, 463, 289, 463, 302, 484, 302, 496, 293, 492, 277, 494, 256 }));
          Cities.Add(new City("Niğde", new int[] { 445, 325, 460, 342, 462, 374, 478, 367, 481, 348, 504, 343, 504, 319, 489, 307, 461, 304, 462, 314 }));
          Cities.Add(new City("Ordu", new int[] { 602, 118, 592, 134, 581, 135, 591, 146, 608, 147, 627, 159, 632, 173, 656, 157, 643, 144, 652, 130, 629, 119, 623, 128 }));
          Cities.Add(new City("Osmaniye", new int[] { 559, 354, 550, 352, 541, 383, 550, 382, 550, 393, 565, 397, 579, 382, 573, 371, 557, 373, 558, 365 }));
          Cities.Add(new City("Rize", new int[] { 771, 123, 775, 150, 782, 152, 809, 128, 822, 109, 812, 99 }));
          Cities.Add(new City("Sakarya", new int[] { 257, 108, 249, 140, 235, 147, 235, 156, 263, 166, 268, 153, 280, 153, 280, 127, 287, 117 }));
          Cities.Add(new City("Samsun", new int[] { 520, 86, 517, 107, 507, 113, 498, 103, 491, 114, 497, 120, 545, 135, 556, 125, 565, 135, 589, 131, 599, 119, 586, 105, 577, 103, 569, 114, 550, 98, 548, 88, 544, 80, 544, 80 }));
          Cities.Add(new City("Siirt", new int[] { 911, 322, 900, 327, 876, 307, 865, 312, 847, 306, 833, 324, 851, 332, 850, 339, 858, 339, 860, 345, 880, 346, 893, 332, 912, 339, 915, 330 }));
          Cities.Add(new City("Sinop", new int[] { 455, 63, 458, 78, 474, 84, 466, 91, 466, 104, 488, 112, 499, 100, 506, 110, 515, 104, 517, 86, 498, 67, 494, 54, 483, 65 }));
          Cities.Add(new City("Sivas", new int[] { 581, 182, 620, 188, 654, 161, 657, 178, 689, 191, 688, 195, 667, 196, 669, 248, 626, 261, 612, 293, 589, 291, 585, 283, 597, 260, 584, 247, 554, 252, 541, 242, 555, 220, 546, 201, 580, 200 }));
          Cities.Add(new City("Şanlıurfa", new int[] { 772, 399, 750, 357, 748, 336, 738, 340, 713, 328, 709, 354, 688, 370, 669, 366, 652, 368, 644, 388, 656, 405, 676, 403, 693, 414, 721, 416 }));
          Cities.Add(new City("Şırnak", new int[] { 945, 334, 934, 359, 908, 359, 897, 376, 885, 379, 883, 367, 875, 367, 852, 380, 845, 372, 848, 361, 860, 359, 860, 348, 882, 348, 894, 335, 914, 341, 917, 333 }));
          Cities.Add(new City("Tekirdağ", new int[] { 146, 73, 115, 91, 83, 86, 83, 95, 68, 102, 70, 122, 82, 123, 79, 135, 111, 109, 134, 111 }));
          Cities.Add(new City("Tokat", new int[] { 577, 136, 589, 149, 606, 149, 622, 161, 630, 173, 618, 186, 600, 179, 578, 180, 576, 198, 546, 198, 543, 187, 518, 177, 540, 163, 558, 162, 570, 137 }));
          Cities.Add(new City("Trabzon", new int[] { 706, 121, 708, 135, 731, 151, 740, 141, 757, 152, 773, 152, 768, 126, 737, 125 }));
          Cities.Add(new City("Tunceli", new int[] { 775, 221, 750, 248, 742, 266, 690, 266, 692, 239, 741, 220 }));
          Cities.Add(new City("Uşak", new int[] { 222, 266, 220, 258, 167, 272, 158, 299, 201, 300, 220, 278 }));
          Cities.Add(new City("Van", new int[] { 907, 323, 904, 286, 921, 227, 933, 222, 950, 232, 956, 221, 966, 222, 993, 287, 994, 325, 979, 330, 978, 320, 946, 331, 917, 330, 913, 321 }));
          Cities.Add(new City("Yalova", new int[] { 205, 146, 178, 149, 175, 143, 184, 137, 213, 137 }));
          Cities.Add(new City("Yozgat", new int[] { 500, 196, 455, 196, 449, 206, 467, 217, 498, 261, 506, 265, 519, 252, 546, 236, 552, 220, 540, 191, 515, 180, 503, 181, 502, 189 }));
          Cities.Add(new City("Zonguldak", new int[] { 344, 86, 310, 103, 307, 115, 311, 120, 345, 121, 355, 102, 351, 89 }));

      }

 
      public void  Scale(float zoom)
      {

          foreach (City  c in Cities)
          {
              for (int i = 0; i < c.CityCoords.Length; i++)
              {
                //  Point  p = c.CityCoords[i];
                  c.CityCoords[i].X = (int)(c.CityCoords[i].X * zoom);
                  c.CityCoords[i].Y = (int)(c.CityCoords[i].Y * zoom);
              }
    
          }
      
      }

      public void DrawToControl(Control cnt )
      { 
      
      DrawToControl(  cnt, Pens.Black);
      }
      public void DrawToControl(Control cnt, Pen pen)
      {
          Graphics g = cnt.CreateGraphics();
        
          foreach (City c in Cities)
          { 
              g.DrawPolygon(pen, c.CityCoords);
            //  g.Flush();
          }
          g.Save();
       
          g.Dispose();
         

      }

      static bool PointInPolygon(PointF p, PointF[] poly)
      {
          PointF p1, p2;

          bool inside = false;

          if (poly.Length < 3)
          {
              return inside;
          }
          PointF oldPoint = new PointF(
      poly[poly.Length - 1].X, poly[poly.Length - 1].Y);
          for (int i = 0; i < poly.Length; i++)
          {
              PointF newPoint = new PointF(poly[i].X, poly[i].Y);

              if (newPoint.X > oldPoint.X)
              {
                  p1 = oldPoint;
                  p2 = newPoint;

              }
              else
              {
                  p1 = newPoint;
                  p2 = oldPoint;

              }

              if ((newPoint.X < p.X) == (p.X <= oldPoint.X)

                  && ( p.Y -  p1.Y) *  (p2.X - p1.X)

                   < ( p2.Y -  p1.Y) * (p.X - p1.X))
              {
                  inside = !inside;
              }
              oldPoint = newPoint;
          }
          return inside;
      }
      public City getCityAtPoint(System.Drawing.PointF p)
      {

          foreach (City c in Cities)
          {
              if (PointInPolygon(p, c.CityCoords)) return c;
          }
          return null;
      }
    }
}

UYGULAMAYI İNDİR