Şimdi Ara

c# Forms aplication.

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
3 Misafir - 3 Masaüstü
5 sn
9
Cevap
0
Favori
231
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhabalar uzun süredir console ile ilgileniyordum fakat şuan can sıkıntısından forms aplicationarı öğrenmeye çalışayım dedim işin kodlama kısmında sorunum yok fakat toolslar açılır pencere gibi şeylerde sorun yaşıyorum.Şimdi bir Tic-Tac-Toe oyunu yaptım fakat program açıldığında bir açılır pencere açılıp kullanıcı ismini vb sormak istiyorum.Bu pencereyi açılışta açıp nasıl veri çekebilirim ve birden fazla pencere arasındaki bağlantıyı nasıl kuruyoruz?

    Edit:1 sorumu çözdüm ve sildim.



    < Bu mesaj bu kişi tarafından değiştirildi Obilux -- 26 Temmuz 2015; 10:16:05 >



  • Sorularını daha açık sorarsan daha iyi cevap alabilirsin ben anladığım kadarıyla yardımcı olmaya çalışıyim. Textboxlarla veriyi alabilirsin altınada mesela "Başla" diye bir buton koydun bu butonun kodu içini 'new açmakistediğimdiğerforumunadı().ShowDialog();' yazarsan diğer forumun açılmasını sağlayabilirsin.
  • quote:

    Orijinalden alıntı: Fishermanx

    Sorularını daha açık sorarsan daha iyi cevap alabilirsin ben anladığım kadarıyla yardımcı olmaya çalışıyim. Textboxlarla veriyi alabilirsin altınada mesela "Başla" diye bir buton koydun bu butonun kodu içini 'new açmakistediğimdiğerforumunadı().ShowDialog();' yazarsan diğer forumun açılmasını sağlayabilirsin.

    Saolun hocam biraz karışık.Bunun herhangi bir butona basınca değilde program açıldığında çıkmasını istiyorum bunu nasıl yapabilirm?
  • Obilux kullanıcısına yanıt
    Programı çalıştırdığın zaman ilk olarak program.cs dosyası çalışır. program.cs deki Main fonksiyonundaki

    // Application.Run() /// kodunu şu şekilde değiştir.

    /// Application.Run(new FormClass() )

    Bu FormClass.cs dosyasında bulunan formunu açar.



    < Bu mesaj bu kişi tarafından değiştirildi soruuken -- 27 Temmuz 2015; 9:23:25 >
  • quote:

    Orijinalden alıntı: soruuken

    Programı çalıştırdığın zaman ilk olarak program.cs dosyası çalışır. program.cs deki Main fonksiyonundaki

    // Application.Run() /// kodunu şu şekilde değiştir.

    /// Application.Run(new FormClass() )

    Bu FormClass.cs dosyasında bulunan formunu açar.

    Hocam ilginiz için saolun yeni bir form oluşturdum metotları ayarladım diğer formadki 2 labeli dğeiştirecek burda sorun yok.Ama dediğiniz metodu maine ekleyemiyorum System.Windows.Forms; referansı ekli olduğu halde.Bir kaç şey denedim ilk form 1 açılıyor.Sonra değiştirince form2 ye etkilemiyor ilk form2 yi başlattım bu sefer form2 kapanınca komple program kapanır oldu.
    Edit:Hocam editledikden sornaki dediğinizi yapınca hiç açılmadı. :(

    Edit2:Yardım etmeye çalışan herkese teşekkür ederim sorunu şu şekilde hallettim.
            private void Form1_Load(object sender, EventArgs e) 
    {
    Form2 form2 = new Form2();
    form2.Show();
    }

    Fakat yaptığım değişiklikler hala işlemiyor.

    Form1 kodum
    using System; 
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;

    namespace TicTacToe
    {
    public partial class Form1 : Form
    {
    static int birskor, ikiskor = 0;
    static int sira = 1;
    public string Oyuncu1 = "Oyuncu1";
    public string Oyuncu2 = "Oyuncu2";
    public Form1()
    {
    InitializeComponent();
    }
    private void Form1_Load(object sender, EventArgs e)
    {
    Form2 form2 = new Form2();
    form2.ShowDialog();
    }

    private void button1_Click(object sender, EventArgs e)
    {
    if (button1.Text == "")
    {
    if (sirakimde.Text == Oyuncu2) button1.Text = "O";
    else button1.Text = "X";
    sira++;
    if (sira % 2 == 0) sirakimde.Text = Oyuncu2;
    else sirakimde.Text = Oyuncu1;
    kontrol();
    }
    }

    private void button2_Click(object sender, EventArgs e)
    {
    if (button2.Text == "")
    {
    if (sirakimde.Text == Oyuncu2) button2.Text = "O";
    else button2.Text = "X";
    sira++;
    if (sira % 2 == 0) sirakimde.Text = Oyuncu2;
    else sirakimde.Text = Oyuncu1;
    kontrol();
    }
    }

    private void button3_Click(object sender, EventArgs e)
    {
    if (button3.Text == "")
    {
    if (sirakimde.Text == Oyuncu2) button3.Text = "O";
    else button3.Text = "X";
    sira++;
    if (sira % 2 == 0) sirakimde.Text = Oyuncu2;
    else sirakimde.Text = Oyuncu1;
    kontrol();
    }
    }

    private void button4_Click(object sender, EventArgs e)
    {
    if (button4.Text == "")
    {
    if (sirakimde.Text == Oyuncu2) button4.Text = "O";
    else button4.Text = "X";
    sira++;
    if (sira % 2 == 0) sirakimde.Text = Oyuncu2;
    else sirakimde.Text = Oyuncu1;
    kontrol();
    }
    }

    private void button5_Click(object sender, EventArgs e)
    {
    if (button5.Text == "")
    {
    if (sirakimde.Text == Oyuncu2) button5.Text = "O";
    else button5.Text = "X";
    sira++;
    if (sira % 2 == 0) sirakimde.Text = Oyuncu2;
    else sirakimde.Text = Oyuncu1;
    kontrol();
    }
    }

    private void button6_Click(object sender, EventArgs e)
    {
    if (button6.Text == "")
    {
    if (sirakimde.Text == Oyuncu2) button6.Text = "O";
    else button6.Text = "X";
    sira++;
    if (sira % 2 == 0) sirakimde.Text = Oyuncu2;
    else sirakimde.Text = Oyuncu1;
    kontrol();
    }
    }

    private void button7_Click(object sender, EventArgs e)
    {
    if (button7.Text == "")
    {
    if (sirakimde.Text == Oyuncu2) button7.Text = "O";
    else button7.Text = "X";
    sira++;
    if (sira % 2 == 0) sirakimde.Text = Oyuncu2;
    else sirakimde.Text = Oyuncu1;
    kontrol();
    }
    }

    private void button8_Click(object sender, EventArgs e)
    {
    if (button8.Text == "")
    {
    if (sirakimde.Text == Oyuncu2) button8.Text = "O";
    else button8.Text = "X";
    sira++;
    if (sira % 2 == 0) sirakimde.Text = Oyuncu2;
    else sirakimde.Text = Oyuncu1;
    kontrol();
    }
    }

    private void button9_Click(object sender, EventArgs e)
    {
    if (button9.Text == "")
    {
    if (sirakimde.Text == Oyuncu2) button9.Text = "O";
    else button9.Text = "X";
    sira++;
    if (sira % 2 == 0) sirakimde.Text = Oyuncu2;
    else sirakimde.Text = Oyuncu1;
    kontrol();
    }
    }

    private void button10_Click(object sender, EventArgs e)
    {
    temizle();
    birskor = 0;
    ikiskor = 0;
    oyuncubirskor.Text = "";
    oyuncuikiskor.Text = "";
    }

    private void button11_Click(object sender, EventArgs e)
    {
    temizle();
    }

    private void kontrol()
    {
    if (button1.Text != "" && button1.Text == button2.Text && button1.Text == button3.Text)
    {
    button1.BackColor = Color.Green;
    button1.ForeColor = Color.White;
    button2.BackColor = Color.Green;
    button2.ForeColor = Color.White;
    button3.BackColor = Color.Green;
    button3.ForeColor = Color.White;
    if (button1.Text == "X")
    {
    MessageBox.Show("" + Oyuncu1 +" Kazandı!");
    birskor++;
    oyuncubirskor.Text = birskor.ToString();
    }
    else
    {
    MessageBox.Show("" + Oyuncu2 +" Kazandı!");
    ikiskor++;
    oyuncuikiskor.Text = ikiskor.ToString();
    }
    temizle();
    }
    else if (button1.Text != "" && button1.Text == button4.Text && button1.Text == button7.Text)
    {
    button1.BackColor = Color.Green;
    button1.ForeColor = Color.White;
    button4.BackColor = Color.Green;
    button4.ForeColor = Color.White;
    button7.BackColor = Color.Green;
    button7.ForeColor = Color.White;
    if (button1.Text == "X")
    {
    MessageBox.Show("" + Oyuncu1 +" Kazandı!");
    birskor++;
    oyuncubirskor.Text = birskor.ToString();
    }
    else
    {
    MessageBox.Show("" + Oyuncu2 +" Kazandı!");
    ikiskor++;
    oyuncuikiskor.Text = ikiskor.ToString();
    }
    temizle();
    }
    else if (button2.Text != "" && button2.Text == button5.Text && button2.Text == button8.Text)
    {
    button2.BackColor = Color.Green;
    button2.ForeColor = Color.White;
    button5.BackColor = Color.Green;
    button5.ForeColor = Color.White;
    button8.BackColor = Color.Green;
    button8.ForeColor = Color.White;
    if (button2.Text == "X")
    {
    MessageBox.Show("" + Oyuncu1 +" Kazandı!");
    birskor++;
    oyuncubirskor.Text = birskor.ToString();
    }
    else
    {
    MessageBox.Show("" + Oyuncu2 +" Kazandı!");
    ikiskor++;
    oyuncuikiskor.Text = ikiskor.ToString();
    }
    temizle();
    }
    else if (button3.Text != "" && button3.Text == button6.Text && button3.Text == button9.Text)
    {
    button3.BackColor = Color.Green;
    button3.ForeColor = Color.White;
    button6.BackColor = Color.Green;
    button6.ForeColor = Color.White;
    button9.BackColor = Color.Green;
    button9.ForeColor = Color.White;
    if (button3.Text == "X")
    {
    MessageBox.Show("" + Oyuncu1 +" Kazandı!");
    birskor++;
    oyuncubirskor.Text = birskor.ToString();
    }
    else
    {
    MessageBox.Show("" + Oyuncu2 +" Kazandı!");
    ikiskor++;
    oyuncuikiskor.Text = ikiskor.ToString();
    }
    temizle();
    }
    else if (button4.Text != "" && button4.Text == button5.Text && button4.Text == button6.Text)
    {
    button4.BackColor = Color.Green;
    button4.ForeColor = Color.White;
    button5.BackColor = Color.Green;
    button5.ForeColor = Color.White;
    button6.BackColor = Color.Green;
    button6.ForeColor = Color.White;
    if (button4.Text == "X")
    {
    MessageBox.Show("" + Oyuncu1 +" Kazandı!");
    birskor++;
    oyuncubirskor.Text = birskor.ToString();
    }
    else
    {
    MessageBox.Show("" + Oyuncu2 +" Kazandı!");
    ikiskor++;
    oyuncuikiskor.Text = ikiskor.ToString();
    }
    temizle();
    }
    else if (button7.Text != "" && button7.Text == button8.Text && button7.Text == button9.Text)
    {
    button7.BackColor = Color.Green;
    button7.ForeColor = Color.White;
    button8.BackColor = Color.Green;
    button8.ForeColor = Color.White;
    button9.BackColor = Color.Green;
    button9.ForeColor = Color.White;
    if (button7.Text == "X")
    {
    MessageBox.Show("" + Oyuncu1 +" Kazandı!");
    birskor++;
    oyuncubirskor.Text = birskor.ToString();
    }
    else
    {
    MessageBox.Show("" + Oyuncu2 +" Kazandı!");
    ikiskor++;
    oyuncuikiskor.Text = ikiskor.ToString();
    }
    temizle();
    }
    else if (button7.Text != "" && button7.Text == button5.Text && button7.Text == button3.Text)
    {
    button7.BackColor = Color.Green;
    button7.ForeColor = Color.White;
    button5.BackColor = Color.Green;
    button5.ForeColor = Color.White;
    button3.BackColor = Color.Green;
    button3.ForeColor = Color.White;
    if (button7.Text == "X")
    {
    MessageBox.Show("" + Oyuncu1 +" Kazandı!");
    birskor++;
    oyuncubirskor.Text = birskor.ToString();
    }
    else
    {
    MessageBox.Show("" + Oyuncu2 +" Kazandı!");
    ikiskor++;
    oyuncuikiskor.Text = ikiskor.ToString();
    }
    temizle();
    }
    else if (button9.Text != "" && button9.Text == button5.Text && button9.Text == button1.Text)
    {
    button9.BackColor = Color.Green;
    button9.ForeColor = Color.White;
    button5.BackColor = Color.Green;
    button5.ForeColor = Color.White;
    button1.BackColor = Color.Green;
    button1.ForeColor = Color.White;
    if (button9.Text == "X")
    {
    MessageBox.Show("" + Oyuncu1 +" Kazandı!");
    birskor++;
    oyuncubirskor.Text = birskor.ToString();
    }
    else
    {
    MessageBox.Show("" + Oyuncu2 +" Kazandı!");
    ikiskor++;
    oyuncuikiskor.Text = ikiskor.ToString();
    }
    temizle();
    }
    else if (button1.Text != "" && button2.Text != "" && button3.Text != "" && button4.Text != "" && button5.Text != "" && button6.Text != "" && button7.Text != "" && button8.Text != "" && button9.Text != "")
    {
    MessageBox.Show("Berabere!");
    temizle();
    }
    }
    private void temizle()
    {
    button1.Text = "";
    button1.BackColor = Color.White;
    button1.ForeColor = Color.Black;
    button2.Text = "";
    button2.BackColor = Color.White;
    button2.ForeColor = Color.Black;
    button3.Text = "";
    button3.BackColor = Color.White;
    button3.ForeColor = Color.Black;
    button4.Text = "";
    button4.BackColor = Color.White;
    button4.ForeColor = Color.Black;
    button5.Text = "";
    button5.BackColor = Color.White;
    button5.ForeColor = Color.Black;
    button6.Text = "";
    button6.BackColor = Color.White;
    button6.ForeColor = Color.Black;
    button7.Text = "";
    button7.BackColor = Color.White;
    button7.ForeColor = Color.Black;
    button8.Text = "";
    button8.BackColor = Color.White;
    button8.ForeColor = Color.Black;
    button9.Text = "";
    button9.BackColor = Color.White;
    button9.ForeColor = Color.Black;
    }
    public void nickdegis(string oyuncu1, string oyuncu2)
    {
    oyuncubir.Text = oyuncu1;
    oyuncuiki.Text = oyuncu2;
    sirakimde.Text = oyuncu1;
    Oyuncu1 = oyuncu1;
    Oyuncu2 = oyuncu2;
    }
    }
    }


    Form2 kodum
    using System; 
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;

    namespace TicTacToe
    {
    public partial class Form2 : Form
    {
    public Form2()
    {
    InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
    if (textBox1.Text != "" && textBox2.Text != "")
    {
    Form1 anakısım = new Form1();
    anakısım.nickdegis(textBox1.Text, textBox2.Text);
    Close();
    }
    else MessageBox.Show("Lütfen nickleri boş bırakmayınız.");
    }
    }
    }

    Messagebox lar ile kontrol ettim veri kesinlikle doğru gidiyor.



    < Bu mesaj bu kişi tarafından değiştirildi Obilux -- 27 Temmuz 2015; 10:37:13 >




  • Obilux kullanıcısına yanıt
    Değişkenlerin gitmemesinin nedeni iki farklı nesne yaratılmış olması. Yani şöyle söyliyim;

    FORM 1 Nesnesi yarattın;
    FORM 1 içinde FORM 2 Nesnesi yarattın;
    FORM 2 içinde yeni bir FORM 1 nesnesi yarattın.

    Yani hem form 2 ye ulaştığın, hemde boş durumda olan yeni form 1 nesnesi mevcut. sen değişkenlerini yeni olan nesneye yolluyorsu.

    Çözüm olarak form 2 yi oluşturduğun zaman form1 nesnesini de yollaman.

    FORM 1 de
    Form2 form2 = new Form2();
    Form2.ShowDialog(this);

    //////

    FORM 2 de
    ((Form1)this.Owner).METHOD(degisken1,degisken2);
  • quote:

    Orijinalden alıntı: soruuken

    Değişkenlerin gitmemesinin nedeni iki farklı nesne yaratılmış olması. Yani şöyle söyliyim;

    FORM 1 Nesnesi yarattın;
    FORM 1 içinde FORM 2 Nesnesi yarattın;
    FORM 2 içinde yeni bir FORM 1 nesnesi yarattın.

    Yani hem form 2 ye ulaştığın, hemde boş durumda olan yeni form 1 nesnesi mevcut. sen değişkenlerini yeni olan nesneye yolluyorsu.

    Çözüm olarak form 2 yi oluşturduğun zaman form1 nesnesini de yollaman.

    FORM 1 de
    Form2 form2 = new Form2();
    Form2.ShowDialog(this);

    //////

    FORM 2 de
    ((Form1)this.Owner).METHOD(degisken1,degisken2);



    Hocam çok saolun oldu sonunda :) ama olmama nedini çözemedim console aplicationda bunu yaptığımda sounsuz olurdu gerçi onda formlar yerine classlar var.Birde form1deki this ne anlam kattı? Form2de sanırım form2 inin form1'in alt formu olduğunu belirttik.

    Sanırım this ve base olayını öğrenmeliyim.



    < Bu mesaj bu kişi tarafından değiştirildi Obilux -- 27 Temmuz 2015; 18:07:35 >




  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
  • Class içinde this denildigi zaman bu obje anlamina gelir . Yani sen form2 this ile çağırdığın zaman form2 nin owner objesi form1 objesi olarak atanıyor boylece o nesneye verdiğim kodla ulaşabiliyorsun.Form classla aynı yapıda zaten farklı olarak düşünme.



    < Bu mesaj bu kişi tarafından değiştirildi soruuken -- 27 Temmuz 2015; 20:27:39 >
    < Bu ileti mobil sürüm kullanılarak atıldı >
  • quote:

    Orijinalden alıntı: soruuken

    Class icinde this denildigi zaman bu obje anlamina gelir . Yani sen form2 yi çağırdığın form1 objesini form2 ye yolluyorsun. Form classla aynı yapıda zaten farklı olarak düşünme.


    Saolun hocam az çok bir fikrrim oluştu zamanla tam oturacaktır.Yardımlarınız için çok teşekkür ederim yoksa burda tıkanmıştım :)
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.