none
Public button c# RRS feed

  • Soru

  •   if (buttonTiklandi)
                {
                    connection.Open();
                    Button btn = (Button)sender;
                    btn.Text = "";
                    btn.Tag = "";
                    string kayit = "UPDATE butonlar SET yazisi=@yazisi,tag=@tag where butonadi=@butonadi";
                    MySqlCommand komut = new MySqlCommand(kayit, connection);
    
                    komut.Parameters.AddWithValue("@yazisi", "");
                    komut.Parameters.AddWithValue("@tag", "");
                    komut.Parameters.AddWithValue("@butonadi", btn.Name);
    
                    komut.ExecuteNonQuery();
                    komut.Dispose();
                    connection.Close();
    
    
                    buttonTiklandi = false;
                }
    
                else
    
                    if (btn1.Text != "")
                    {
    
                        Button btn = (Button)sender;
    
                        DataTable dTable = new DataTable();
                        {
                            using (MySqlDataAdapter dAdapter = new MySqlDataAdapter("SELECT * FROM urun WHERE barkod=@barkod", connection))
                            {
                                dAdapter.SelectCommand.Parameters.AddWithValue("@barkod", btn.Tag);
                                dAdapter.Fill(dTable);
                            }
                            if (dTable.Rows.Count > 0)
                            {
                                int satirNo = -1;
                                int miktar = 1;
                                DataGridViewCellStyle renk = new DataGridViewCellStyle();
                                decimal birimFiyat = Convert.ToDecimal(dTable.Rows[0]["fiyat"]);
                                dataGridView1.Columns[3].DefaultCellStyle.Format = "0.00 TL";
                                dataGridView1.Columns[4].DefaultCellStyle.Format = "0.00 TL";
                                foreach (DataGridViewRow dRow in dataGridView1.Rows)
                                {
                                    if (dRow.Cells[0].Value != null && dRow.Cells[0].Value.ToString() == Convert.ToString(btn.Tag))
                                    {
                                        miktar = Convert.ToInt32(dRow.Cells[2].Value) + 1;
                                        birimFiyat = Convert.ToDecimal(dRow.Cells[4].Value) + birimFiyat;
                                        renk.BackColor = Color.Yellow;
    
                                        satirNo = dRow.Cells[0].RowIndex;
                                        break;
                                    }
                                }
                                if (satirNo < 0)
                                    dataGridView1.Rows.Add(dTable.Rows[0]["barkod"], dTable.Rows[0]["urunadi"], miktar, dTable.Rows[0]["fiyat"], birimFiyat, dTable.Rows[0]["stok"]);
                                else
                                {
                                    dataGridView1.Rows[satirNo].Cells[2].Value = miktar;
                                    dataGridView1.Rows[satirNo].Cells[4].Value = birimFiyat;
                                    dataGridView1.Rows[satirNo].DefaultCellStyle = renk;
                                }
                            }
                            textBox1.Clear();
                            topla();
                        }
                    }
                    else
                        if (btn1.Text == "")
                        {
                            veriler f2 = new veriler();
                            f2.ShowDialog();
                            Button btn = (Button)sender;
                            btn.Text = isim;
                            btn.Tag = id;
                            connection.Close();
                            connection.Open();
    
                            if (btn.Text == isim)
                            {
    
    
                                string kayit = "UPDATE butonlar SET yazisi=@yazisi,tag=@tag where butonadi=@butonadi";
                                MySqlCommand komut = new MySqlCommand(kayit, connection);
    
                                komut.Parameters.AddWithValue("@yazisi", btn.Text);
                                komut.Parameters.AddWithValue("@tag", btn.Tag);
                                komut.Parameters.AddWithValue("@butonadi", btn.Name);
    
    
                                komut.ExecuteNonQuery();
                                komut.Dispose();
                                connection.Close();
                            }
    
                            else
                            {
                                string kayit = "UPDATE butonlar SET yazisi=@yazisi,tag=@tag where butonadi=@butonadi";
                                MySqlCommand komut = new MySqlCommand(kayit, connection);
    
                                komut.Parameters.AddWithValue("@yazisi", "");
                                komut.Parameters.AddWithValue("@tag", "");
                                komut.Parameters.AddWithValue("@butonadi", btn.Name);
    
                                MessageBox.Show("Butona Ürün Atanmadı!");
    
                                komut.ExecuteNonQuery();
                                komut.Dispose();
                                connection.Close();
                            }
    
                        }

    Bu kodumu public yapıp formumdaki 150 adet buttona çekmem gerekiyor tek publicle ama public void içerisine aldığımda (Button)sender sorun çıkarıyor eventargs olmadığı için nasıl yapabilirim?

    13 Şubat 2018 Salı 22:39

Tüm Yanıtlar

  • //Program.cs içeriside veya bir class oluşturup,
    public static void button_Click(object sender, EventArgs e)
    {
        MessageBox.Show("Tamam");
        //Kodlarınızı buraya kopyalayın...
    }
    
    //Formlarınızın içerisinde, (Örneğin Form1'de),
    public Form1()
    {
        InitializeComponent();
        button1.Click += Program.button_Click;
        button2.Click += Program.button_Click;
        button3.Click += Program.button_Click;
        //...
    }



    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...




    13 Şubat 2018 Salı 23:00
  • Başka butonlara bu buttonu nasıl çağırabilirim?
    13 Şubat 2018 Salı 23:03
  • Kullanım şekliyle birlikte kodu düzenledim. Kullanabilirsiniz...

    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    13 Şubat 2018 Salı 23:19
  • Deleted
    14 Şubat 2018 Çarşamba 09:47
  • Formunuzda niye 150 adet buton var?  Bu şekilde bir tasarımın hatalı olduğunu konusunda sizi yönlendiren biri olmadı mı?
    14 Şubat 2018 Çarşamba 10:20
  • Formunuzda niye 150 adet buton var?  Bu şekilde bir tasarımın hatalı olduğunu konusunda sizi yönlendiren biri olmadı mı?

    8 Adet Panel ve bu panellerin her birinde 40'ar adet button mevcut her birine atandığı ürün farklıda o yüzden kullanıcı belirliyor bu buttonların girilen ürünlerin barkodlarını tag'a yazdırmaktayım textinide buttonun textine yazdırıyorum.Ancak bunu kısayolu varmıdır bilemiyorum araştırdım bulamadım.Yani açıkcası form yüklenirken 0.10 ms kadar kasmakta ama bunu iyileştirmenin yolunu bulamadım henüz.

    19 Şubat 2018 Pazartesi 07:28