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;
        }



1 Kasım 2017 Çarşamba

C Sharp Uygulamalar Resmi Parçalara Bölme - Resmi Parçalara Bölme Programı



KONU : C Sharp Uygulamalar - C Sharp ( C# ) Form Uygulamalar bir resmi küçük parçalara bölme, bitmap grafik nesnesini daha küçük parçalara bölme, c sharp uygulamalar resmi parçalara bölme, c# uygulamalar resmi parçalara bölme, c sharp uygulamaları grafik nesnesini kullanarak resmi parçalara bölme, c sharp uygulamalar resmi parçalara ayırma örnekler.




UYGULAMAYI İNDİR
 




//parçaları ayırdığımız resimlerin her parçasını image olarak bir generic list içinde saklayalım

List< image > parcaResimler = new List< image >();

Bitmap resim;

Graphics gr = null;

Image alinanResim = Image.FromFile(@"C:\alinan.jpg");


// Bölmek istediğimiz resmi kaç sütuna ayıracağımızı girelim

int sutunSayisi = 2;


//Bölmek istediğimiz resmi kaç satıra ayırcağımızı girelim

int satirSayisi = 5;

int x = 0;

int y = 0;


// for döngüsünü kullanarak resmi parçalara ayırmaya başlayalım


for (int i = 0; i < satirSayisi; i++)
{

    for (int k = 0; k < sutunSayisi; k++)
    {

        Rectangle seçili_alan = new Rectangle(x, y, alinanResim.Width / sutunSayisi, alinanResim.Height / satirSayisi);

        //Seçili alan büyüklüğünde bir Bitmap oluştur

        resim = new Bitmap(seçili_alan.Width, seçili_alan.Height);

        //Bu Bitmap için grafik nesnesi oluştur

        gr = Graphics.FromImage(resim);

        //Picture Box içindeki resmi yeni resmin 0,0 noktasına çiz

        gr.DrawImage(alinanResim, 0, 0, seçili_alan, GraphicsUnit.Pixel);

        //Yeni resmi parcaResimler içine image olarak kaydet

        parcaResimler.Add(resim);

        x += alinanResim.Width / sutunSayisi;

    }

    y += alinanResim.Height / satirSayisi;

    x = 0;
}

//grafik nesnesini sonlandır

gr.Dispose();


 

UYGULAMAYI İNDİR

4 Haziran 2017 Pazar

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;
            }
        }


1 Mayıs 2017 Pazartesi

C Sharp Form Uygulamalar Elektrik Faturası Hesaplama Programı




KONU : C Sharp Uygulamalar - C Sharp form uygulamalar elektrik faturası hesaplama programı hazırlama. Elektrik faturası hesaplamak için örnek c sharp kodları. Elektrik faturasını Fatura sınıfı oluşturarak hesaplama yöntemi.
ETİKETLER: c sharp elektrik - c sharp elektrik faturası - c sharp fatura hesaplama - fatura hesaplama - c# fatura hesapla - c# elektrik faturası hesaplama - c sharp sınıf örnek kodları- c sharp sınıf oluşturma






UYGULAMAYI İNDİR
 

 
// elektrik faturası görsel form sınıfı

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_Elektrik_Faturasi_Ornegi
{
    public partial class FaturaHesaplama : Form
    {
        Fatura fatura = null;

        public FaturaHesaplama()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            fatura = new Fatura();
        }

                    
        private void btnHesapla_Click(object sender, EventArgs e)
        {
            bool girisDogruMu = true;
            try
            {
                fatura.GunduzTuketim = double.Parse(txtTuketimGunduz.Text);
            }
            catch (Exception)
            {
                girisDogruMu = false;
                MessageBox.Show("Gündüz  tüketim olarak sayısal bir veri girilmelidir.", "HATA", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            try
            {
                fatura.PuantTuketim = double.Parse(txtTuketimPuant.Text);
            }
            catch (Exception)
            {
                girisDogruMu = false;
                MessageBox.Show("Puant  tüketim olarak sayısal bir veri girilmelidir.", "HATA", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            try
            {
                fatura.GeceTuketim = double.Parse(txtTuketimGece.Text);
            }
            catch (Exception)
            {
                girisDogruMu = false;
                MessageBox.Show("Gece  tüketim olarak sayısal bir veri girilmelidir.", "HATA", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }


            if (girisDogruMu)
            {
                fatura.Hesapla();

                lblToplamTutar.Text = fatura.FaturaTutar.ToString("0.0");
            }
            else
            {
                lblToplamTutar.Text = "0";
            }
        }
    }
}

 

// eletkrik faturası sınıfı 


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace C_Sharp_Form_Elektrik_Faturasi_Ornegi
{
    class Fatura
    {
        private double gunduzTuketim;
        private double puantTuketim;
        private double geceTuketim;
        private double faturaTutar;
        private double birimFiyatGunduz;
        private double birimFiyatPuant;
        private double birimFiyatGece;

        public double GunduzTuketim
        {
            get
            {
                return gunduzTuketim;
            }
            set
            {
                gunduzTuketim = value;
            }
        }

        public double PuantTuketim
        {
            get
            {
                return puantTuketim;
            }
            set
            {
                puantTuketim = value;
            }
        }

        public double GeceTuketim
        {
            get
            {
                return geceTuketim;
            }
            set
            {
                geceTuketim = value;
            }
        }

        public double FaturaTutar
        {
            get
            {
                return faturaTutar;
            }
            set
            {
                faturaTutar = value;
            }
        }

        public void Hesapla()
        {
            birimFiyatGunduz = 0.22469456;
            birimFiyatPuant = 0.37823100;
            birimFiyatGece = 0.11424900;
            double tutar = 0, hizmetBedeli = 0.00740112, sayacOkumaBedeli = 0.544, dagitimBedeli = 0.02822584;
            double enerjiFonu = 0.008, trtPayi = 0.016, tuketimVergisi = 0.04, iletimVergisi = 0.00870720;

            tutar += gunduzTuketim * birimFiyatGunduz;
            tutar += geceTuketim * birimFiyatGece;
            tutar += puantTuketim * birimFiyatPuant;


            double toplamTuketim = gunduzTuketim + puantTuketim + geceTuketim;

            tutar += toplamTuketim * hizmetBedeli;
            tutar += sayacOkumaBedeli;
            tutar += toplamTuketim * dagitimBedeli;
            tutar += toplamTuketim * iletimVergisi;

            tutar += tutar * enerjiFonu + tutar * trtPayi + tutar * tuketimVergisi;

            faturaTutar = tutar + tutar * 0.18;

        }
    }
}
 

 

UYGULAMAYI İNDİR

1 Mart 2017 Çarşamba

C Sharp Form Uygulamalar Puzzle Oyunu Oyna



KONU : C Sharp Uygulamalar - C Sharp ( C# ) form uygulamalar puzzle oyunu oyna.
ETİKETLER: c sharp puzzle - c sharp puzzle game - c sharp picturbox - c# puzzle game - c# puzzle oyunu





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_Puzzle_Game
{
    public partial class MAinForm : Form
    {
        private Point bosYer;
        private int saniye = 0;
        private int dakika = 0;

        List< Image > resimParcalari = new List< Image >();
        List< PictureBox > resimAlanlari = new List< PictureBox >();
        Bitmap CurrentBitmapImage;


        public MAinForm()
        {
            InitializeComponent();
        }

        private void Form2_Load(object sender, EventArgs e)
        {
            CurrentBitmapImage = new Bitmap(C_Sharp_Puzzle_Game.Properties.Resources.resim, new Size(375, 375));

            YeniOyun();
        }

        private void YeniOyun()
        {

            for (int i = 0; i < resimAlanlari.Count; i++)
            {
                this.Controls.Remove(resimAlanlari[i]);
            }
           
            resimAlanlari.Clear();
            resimParcalari.Clear();

            tumresim.Location = new Point(550, 50);
            tumresim.BorderStyle = BorderStyle.FixedSingle;
            tumresim.Size = new System.Drawing.Size(375, 375);
            tumresim.Image = CurrentBitmapImage.Clone(new Rectangle(new Point(0, 0), new Size(375, 375)), System.Drawing.Imaging.PixelFormat.DontCare);

            for (int i = 0; i < 9; i++)
            {
                resimParcalari.Add(CurrentBitmapImage.Clone(new Rectangle(new Point(i / 3 * 125, i % 3 * 125), new Size(125, 125)), System.Drawing.Imaging.PixelFormat.DontCare));
            }

            List< int > resimDagilimi = new List< int >();
            Random rastgele = new Random();

            for (int i = 0; i < 8; i++)
            {
                int resimNo = rastgele.Next(8);
                if (!resimDagilimi.Contains(resimNo))
                {
                    resimDagilimi.Add(resimNo);
                }
                else
                {
                    i--;
                }

            }

            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    if (!(j == 2 && i == 2))
                    {
                        PictureBox resim = new PictureBox();
                        resim.Click += new EventHandler(p_Click);
                        resim.Location = new Point(125 * i + 50, 125 * j + 50);
                        resim.BorderStyle = BorderStyle.FixedSingle;
                        resim.Size = new System.Drawing.Size(125, 125);
                        resim.Tag = resimDagilimi[i * 3 + j].ToString();
                        resim.Image = resimParcalari[resimDagilimi[i * 3 + j]];
                        resimAlanlari.Add(resim);
                        this.Controls.Add(resim);
                    }
                    else
                    {
                        bosYer = new Point(125 * 2 + 50, 125 * 2 + 50);
                    }
                }
            }

            timer.Enabled = true;
            saniye = 0;
            dakika = 0;
            lblDakika.Text = dakika.ToString("00");
            lblSaniye.Text = saniye.ToString("00");
        }

        void p_Click(object sender, EventArgs e)
        {
            PictureBox resim = (PictureBox)sender;

            if ((resim.Location.X - 125 == bosYer.X) && (resim.Location.Y == bosYer.Y))
            {
                resim.Location = bosYer;
                bosYer.X += 125;
                this.Focus();
            }
            else if (resim.Location.X + 125 == bosYer.X && (resim.Location.Y == bosYer.Y))
            {
                resim.Location = bosYer;
                bosYer.X -= 125;
                this.Focus();
            }
            else if (resim.Location.Y - 125 == bosYer.Y && (resim.Location.X == bosYer.X))
            {
                resim.Location = bosYer;
                bosYer.Y += 125;
                this.Focus();
            }

            else if (resim.Location.Y + 125 == bosYer.Y && (resim.Location.X == bosYer.X))
            {
                resim.Location = bosYer;
                bosYer.Y -= 125;
                this.Focus();
            }

            bool durum = OyunDurumunuKontrolEt();

            if (durum)
            {
                timer.Enabled = false;

                MessageBox.Show("Tebrikler oyunu tamamladınız","Bilgi",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
            }
        }

        private bool OyunDurumunuKontrolEt()
        {
            bool durum = true;
            for (int i = 0; i < resimAlanlari.Count; i++)
            {
                int id = int.Parse(resimAlanlari[i].Tag.ToString());

                if (!(resimAlanlari[i].Location.X == (id / 3) * 125 + 50 && resimAlanlari[i].Location.Y == (id % 3) * 125 + 50))
                {
                    durum = false;
                    break;
                }
            }


            return durum;
        }

        private void btnBaşlat_Click(object sender, EventArgs e)
        {
            YeniOyun();
        }

        private void btnDuraklat_Click(object sender, EventArgs e)
        {
            timer.Enabled = !timer.Enabled;
        }

        private void btnCik_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void timer_Tick(object sender, EventArgs e)
        {
            if (saniye++ == 60)
            {
                lblDakika.Text = dakika++.ToString("00");
                saniye = 0;
            }

            lblSaniye.Text = saniye.ToString("00");
                    
        }
    }
}
 

 

UYGULAMAYI İNDİR

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