• 13-03-2015, 21:17:39
    #1
    Benim veri tabanında Tür adında tablom var. Burada şu an 12 tür adı var. Bu sonra artabilir azabilir de.



    Mesela üst şekildeki gibi checkbox yanına da tür adı yazacak. Ama kaç tane checkbox olacağı belli olmayacağı için tür sayısı kadar checkbox oluştursun diyorum. Herbir checkbox ın name si farklı olacak. Sonra da hangisi check hangisi check değil onun tespitini yapacağım.

    Bu checkboxları while vs. ile nasıl ekletebilirim? Teşekkürler.
  • 13-03-2015, 22:16:24
    #2
    Global Değişkenimizi tanımlayın ilk olarak

    FlowLayoutPanel f1;
    Form Load Kısmına FlowLayoutPanelimizin özelliklerini ekleyip forma ekleyelim

    f1 = new FlowLayoutPanel
                {
                    Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
                    | System.Windows.Forms.AnchorStyles.Left)
                    | System.Windows.Forms.AnchorStyles.Right))),
                    Location = new System.Drawing.Point(7, 50),
                    Name = "f1",
                    Size = new System.Drawing.Size(407, 235),
                    TabIndex = 1,
                    FlowDirection = FlowDirection.TopDown
                };
                Controls.Add(f1);
    1 Adet Button checkbox kontrolü ekletmek için

    CheckBox c1 = new CheckBox();
                c1.Text = "Test";
                f1.Controls.Add(c1);
    1 Adet button daha ekleyin check kontrol için

    foreach(CheckBox c in f1.Controls)
                {
                    if(c.Checked)
                    { 
                    // True ise
                    }
                    else
                    {
                    //False ise
                    }
                }
  • 14-03-2015, 17:14:23
    #3
    @emrebeyoglu;

    cevabın için teşekkürler. Ancak dediğin gibi yaparak bir sonuç elde edemedim. Biraz araştırarak

    SqlDataAdapter tur = new SqlDataAdapter("SELECT * FROM Tur", connection);
    
                DataTable dtTur = new DataTable();
                tur.Fill(dtTur);
    
                for (int i = 0; i < dtTur.Rows.Count; i++)
                {
                    box = new CheckBox();
                    box.Tag = dtTur.Rows[i]["turAdi"].ToString();
                    box.Text = dtTur.Rows[i]["turAdi"].ToString();
                    box.AutoSize = true;
                    box.Name = dtTur.Rows[i]["turId"].ToString();
                    box.Checked = true;
                    box.Location = new Point(10, i * 20 + 50);
                    arr[i] = box.Name.ToString();
                    this.Controls.Add(box);
                }
    şöyle bir şey yazdım. Burada istediğim gibi checkboxları oluşturuyorum yanında da türler yazıyor. İlk başta hespi checked olarak geliyor. Sonradan checkler değiştirebilir tabi kullanıcı o yüzden. Şimdi ben bir butona bastığımda hangilerinin check olduğunu anlamaya çalışıyorum ama yapamadım.
  • 14-03-2015, 17:32:26
    #4
    checkboxları oluştururken hepsini bir evente bağla.


    box.CheckedChanged+=new EventHandler(box_CheckedChanged);
    Daha sonra burada seçilenlerin id sini, nameini alabilirsin, geri kalan işlemleri yaptırabilirsin.

    private void box_CheckedChanged(object sender, EventArgs e)
            {
                CheckBox c = sender as CheckBox;
                MessageBox.Show(c.Name);
            }
  • 14-03-2015, 21:46:38
    #5
    dikkat etmen gereken iş checkbox oluştururken kontrollere name vermen..

    mesela döngü içerisinde bir sayacın olur ve name in "chkbox" + i;
    şeklinde olur,

    voyl arkadaşın dediği şekilde tek bir evente bağladıktan sonra sender dan gelen bilgiyle name özelliğinden hangi checkbox işaretlenmiş anlayabilirsin

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 22:46:38 -->-> Daha önceki mesaj 22:45:51 --

    gerçi üstteki kodunda name özelliğini vermişsin, voyl in verdiği kod ile yapabilirsin.. olmazsa tekrar mesaj at bakalım
  • 16-03-2015, 22:13:36
    #6
    Tamam dostlar halletim problemi cevap verenlere teşekkürler..