C# Kayıt Formuna geçiş kısmı çalışmıyor

AliYağcı

Kilopat
Katılım
31 Mart 2018
Mesajlar
480
Çözümler
2
Daha fazla  
Cinsiyet
Erkek
Merhabalar, C#'a pek ilgim yok fakat ödev için bir otomasyon yapmam gerekiyor. İnternetteki kaynaklardan bakarak basit bir otobüs bileti otomasyonu yaptım fakat Rezerve'ye tıklandığı zaman KayıtFormu'na geçiş kısmı çalışmıyor. Sebebi ne olabilir?

Kod üzerindeki bazı uyarılar şu şekilde:

Screenshot_1.png


C#:
using System.Diagnostics;
using System.Runtime.InteropServices;

namespace otomasyon_bilet
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void label1_Click(object sender, EventArgs e)
        {

        }

        private void groupBox1_Enter(object sender, EventArgs e)
        {

        }

        private void listView1_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void Form1_Load(object sender, EventArgs e)
        {
        }

        private void cmbotobus_SelectedIndexChanged(object sender, EventArgs e)
        {
            switch (cmbotobus.Text)
            {
                case "tekli":
                    KoltukDoldur(8, false);
                    break;
                case "çiftli":
                    KoltukDoldur(12, true);
                    break;
                case "mini":
                    KoltukDoldur(10, false);
                    break;
            }
            void KoltukDoldur(int sira, bool arkaBesliMi)
            {
            yavaslat:
                foreach (Control ctrl in this.Controls)
                {
                    if (ctrl is Button)
                    {
                        Button btn = ctrl as Button;
                        if (btn.Text == "kaydet")
                        {
                            continue;
                        }
                        else
                        {
                            this.Controls.Remove(ctrl);
                            goto yavaslat;
                        }
                    }
                }
                int koltukno = 1;

                for (int i = 0; i < sira; i++)
                {
                    for (int j = 0; j < 5; j++)
                    {
                        if (arkaBesliMi == true)
                        {
                            if (i != sira - 1 && j == 2)
                            {
                                continue;
                            }
                        }
                        else
                        {
                            if (j == 2)
                                continue;
                        }
                        if (j == 2)
                            continue;
                        Button koltuk = new Button();
                        koltuk.Height = koltuk.Width = 40;
                        koltuk.Top = 30 + (i * 45);
                        koltuk.Left = 5 + (j * 45);
                        koltuk.Text = koltukno.ToString();
                        koltukno++;
                        koltuk.ContextMenuStrip = contextMenuStrip1;
                        koltuk.MouseDown += Koltuk_MouseDown;
                        this.Controls.Add(koltuk);

                    }
                }
            }
        }
        Button tiklanan;
        private void Koltuk_MouseDown(object? sender, MouseEventArgs e)
        {
            tiklanan = sender as Button;
        }

        private void rezerveETToolStripMenuItem_Click(object sender, EventArgs e)
        {
        }

        private void rezerveETToolStripMenuItem1_Click(object sender, EventArgs e)
        {
        }

        private void rEZERVEETToolStripMenuItem2_Click(object sender, EventArgs e)
        {
            if (cmbotobus.SelectedIndex == -1 || cmbnereden.SelectedIndex == -1 || cmbnereye.SelectedIndex == -1)
            {
                MessageBox.Show(" önce gerekli alanları doldurunuz. ");
                return;
            }
            KayıtFormu kf = new KayıtFormu();
            DialogResult sonuc = kf.ShowDialog();
            if (sonuc == DialogResult.OK)
            {
                ListViewItem lvi = new ListViewItem();
                lvi.Text = string.Format("{0} {1}", kf.txtisim.Text, kf.txtsoyisim.Text);
                lvi.SubItems.Add(kf.mskdtelefon.Text);
                if (kf.rdbbay.Checked)
                {
                    lvi.SubItems.Add("BAY");
                    tiklanan.BackColor = Color.Blue;
                }
                if (kf.rdbbayan.Checked)
                {
                    lvi.SubItems.Add("BAYAN");
                    tiklanan.BackColor = Color.Red;
                }
                lvi.SubItems.Add(cmbnereden.Text);
                lvi.SubItems.Add(cmbnereye.Text);
                lvi.SubItems.Add(tiklanan.Text);
                lvi.SubItems.Add(dtptarih.Text);
                lvi.SubItems.Add(nudfiyat.Value.ToString());
                listView1.Items.Add(lvi);

            }
        }
    }
}
 
Son düzenleyen: Moderatör:
Hocam şu kısımda arkada işlem yapılmasını önlemek amacıyla showdialog şeklinde yaptım dediğinizi fakat çalışmıyor.


1684615982346.png


Diğer Form'a geçmek için bir kod göremedim.

Bu şekilde diğer Form isminiz ile geçebilirsiniz.

C#:
Form2 form_2 = new Form2();
form_2.Show();
İsterseniz tüm projeyi yükleyeyim sorun nerede ben bulamadım.
 
Bunu bu şekilde yapmanıza gerek yok. Bu şekilde yapınız;

C#:
             KayıtFormu kf = new KayıtFormu();

                ListViewItem lvi = new ListViewItem();
                lvi.Text = string.Format("{0} {1}", kf.txtisim.Text, kf.txtsoyisim.Text);
                lvi.SubItems.Add(kf.mskdtelefon.Text);
                if (kf.rdbbay.Checked)
                {
                    lvi.SubItems.Add("BAY");
                    tiklanan.BackColor = Color.Blue;
                }
                if (kf.rdbbayan.Checked)
                {
                    lvi.SubItems.Add("BAYAN");
                    tiklanan.BackColor = Color.Red;
                }
                lvi.SubItems.Add(cmbnereden.Text);
                lvi.SubItems.Add(cmbnereye.Text);
                lvi.SubItems.Add(tiklanan.Text);
                lvi.SubItems.Add(dtptarih.Text);
                lvi.SubItems.Add(nudfiyat.Value.ToString());
                listView1.Items.Add(lvi);



            kf.ShowDialog();
 
Bunu bu şekilde yapmanıza gerek yok. Bu şekilde yapınız;

C#:
             KayıtFormu kf = new KayıtFormu();

                ListViewItem lvi = new ListViewItem();
                lvi.Text = string.Format("{0} {1}", kf.txtisim.Text, kf.txtsoyisim.Text);
                lvi.SubItems.Add(kf.mskdtelefon.Text);
                if (kf.rdbbay.Checked)
                {
                    lvi.SubItems.Add("BAY");
                    tiklanan.BackColor = Color.Blue;
                }
                if (kf.rdbbayan.Checked)
                {
                    lvi.SubItems.Add("BAYAN");
                    tiklanan.BackColor = Color.Red;
                }
                lvi.SubItems.Add(cmbnereden.Text);
                lvi.SubItems.Add(cmbnereye.Text);
                lvi.SubItems.Add(tiklanan.Text);
                lvi.SubItems.Add(dtptarih.Text);
                lvi.SubItems.Add(nudfiyat.Value.ToString());
                listView1.Items.Add(lvi);



            kf.ShowDialog();
Denedim fakat çalışmadı sanırım farklı bir yerde hata var. Tüm projeyi yüklesem bakabilir misiniz müsaitseniz?
 
Kodu yanlış Toolstrip içine yazıyor olabilirsiniz. O yüzden Form tasarımcısı üzerinden "rezerve ete" iki defa tıklayın ve açılan kodun içine bu kodları yapıştırın;

C#:
KayıtFormu kf = new KayıtFormu();

                ListViewItem lvi = new ListViewItem();
                lvi.Text = string.Format("{0} {1}", kf.txtisim.Text, kf.txtsoyisim.Text);
                lvi.SubItems.Add(kf.mskdtelefon.Text);
                if (kf.rdbbay.Checked)
                {
                    lvi.SubItems.Add("BAY");
                    tiklanan.BackColor = Color.Blue;
                }
                if (kf.rdbbayan.Checked)
                {
                    lvi.SubItems.Add("BAYAN");
                    tiklanan.BackColor = Color.Red;
                }
                lvi.SubItems.Add(cmbnereden.Text);
                lvi.SubItems.Add(cmbnereye.Text);
                lvi.SubItems.Add(tiklanan.Text);
                lvi.SubItems.Add(dtptarih.Text);
                lvi.SubItems.Add(nudfiyat.Value.ToString());
                listView1.Items.Add(lvi);



            kf.ShowDialog();
 
Kodu yanlış Toolstrip içine yazıyor olabilirsiniz. O yüzden Form tasarımcısı üzerinden "rezerve ete" iki defa tıklayın ve açılan kodun içine bu kodları yapıştırın;

C#:
KayıtFormu kf = new KayıtFormu();

                ListViewItem lvi = new ListViewItem();
                lvi.Text = string.Format("{0} {1}", kf.txtisim.Text, kf.txtsoyisim.Text);
                lvi.SubItems.Add(kf.mskdtelefon.Text);
                if (kf.rdbbay.Checked)
                {
                    lvi.SubItems.Add("BAY");
                    tiklanan.BackColor = Color.Blue;
                }
                if (kf.rdbbayan.Checked)
                {
                    lvi.SubItems.Add("BAYAN");
                    tiklanan.BackColor = Color.Red;
                }
                lvi.SubItems.Add(cmbnereden.Text);
                lvi.SubItems.Add(cmbnereye.Text);
                lvi.SubItems.Add(tiklanan.Text);
                lvi.SubItems.Add(dtptarih.Text);
                lvi.SubItems.Add(nudfiyat.Value.ToString());
                listView1.Items.Add(lvi);



            kf.ShowDialog();
Hocam bunu deneyince iyice bozuldu değişkenler falan hata verdi tam düzeltemedim. Projeyi upload ettim müsait bir zamanda bakabilirseniz sevinirim yarın akşama son teslim tarihi.

Projeyi en baştan yaptım kodları kontrol ettim aynı kodlar fakat bu sefer sorunsuz çalıştı sanırım KayıtFormu'nu oluştururken bir hata yaptım şuan sorunsuz çalışıyor.
 
Son düzenleme:

Yeni konular

Geri
Yukarı