• 05-05-2014, 18:50:52
    #1
    Üyeliği durduruldu
    Sehirler arasi kac km olayini yapmak istiyorum..

    Aklima iki combobox ekleyip iki taraftanda şehri secip arasindaki km mesafesini labele yazdirmak istiyorum nasil yapabilirim?

    Mumkunse vb 6 ya gore..

    Birde verileri tek tek girmelimiyim?
    Kısa bir şekilde oluşturmanın yolu var mı ?

    Yoksa 81 x 81 il şeklinde yapacakmıyım?
  • 06-05-2014, 11:02:09
    #2
    hocam iller ve ilçeler arasındaki mesafeler dbsi varsa burdan db'den çektirip yapabilirsin.
    Fakat bu uğraştırır vs.
    Bunun yerine arka tarafta webbrowser açtırıp oradan sorgulatıp sonucu formda göstermek daha mantıklı
    Altta kodları tek tek açıkladım ona göre snytaxını bulup yaparsın mantığını anlattım zaten

    Mesela şöyle birşey yaptım
    Arka taraf webbrowser'da
    http://www.enakliyat.com.tr/iller-ilceler-arasi-mesafe/ bu siteyi kullanıyor
    Combobox1'de seçilen değer sitede 1.text'e yazılıyor.
    Combobox2'de seçilen değer sitede 2.text'e yazılıyor.
    ve Hesapla Butonuna basılıyor dönen değer(mesafe) textboxt'a yazdırıyoruz
    Öncelikle vb'nin snytaxını fazla bilmediğim için c#'ta yazdım ona göre uyarlarsın.

    private void Form1_Load(object sender, EventArgs e)
    {
    button1.Enabled = false;
    webBrowser1.Navigate("http://www.enakliyat.com.tr/iller-ilceler-arasi-mesafe/");
    //webbrowser açıldığında belirtilen site açılsın

    }

    private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
    //webbrowser tamamenen dolup dolmadığını browserin DocumentCompleted eventiyle bakıyoruz
    //dolduysa Hesapla butonu aktif et
    if (this.webBrowser1.ReadyState == WebBrowserReadyState.Complete)
    {
    this.Text = "";
    button1.Enabled = true;
    }
    else
    {

    }
    }

    private void button1_Click(object sender, EventArgs e)
    {
    //Html Element oluşturup txt_Loc1(sitedeki textbox1'in id'sini alıyoruz)
    HtmlElement elem = webBrowser1.Document.GetElementById("txt_Loc1");
    //Değeri combobox'tan seçilen değeri yazdırıyoruz
    elem.SetAttribute("value", comboBox1.Text);
    //txt_Loc2(sitedeki textbox1'in id'sini alıyoruz)
    elem = webBrowser1.Document.GetElementById("txt_Loc2");
    elem.SetAttribute("value", comboBox2.Text);

    //webbrowser'ın kaynak kodunu çekiyoruz HesaplaButonunaBas'a atıyoruz
    foreach (HtmlElement HesaplaButonunaBas in webBrowser1.Document.All)
    {
    //İf Kaynak kodda Hesapla Bulunduysa
    if (HesaplaButonunaBas.InnerHtml == "Hesapla")
    {
    //Bulunan Butona Bas
    HesaplaButonunaBas.InvokeMember("click");
    }
    }
    timer1.Start(); //hesapla butonuna basıldığında timer'i çalıştıralım
    }


    private void timer1_Tick(object sender, EventArgs e)
    {
    // txt_km id'sindeki değeri textbox3'e atayalım
    textBox3.Text = webBrowser1.Document.GetElementById("txt_km").GetA ttribute("value");
    timer1.Stop();

    }
    Projenin kaynak kodu :
    http://www.dosya.tc/server29/tsqhXg/...plama.rar.html