My code for button
Button btn = (Button)sender; var itemAndPrice = btn.Text; int sno = dataGridView1.Rows.Count + 1; string nazivartikla = itemAndPrice.Split('-')[0].ToString(); double cijena = Convert.ToDouble(itemAndPrice.Split('-')[1].ToString()); string exists = ""; NazivArtiklaTextBox.Text = nazivartikla; Provjera_stanja(); Sifra_i_Podgrupa_robe(); foreach (DataGridViewRow g1 in dataGridView1.Rows) { if (g1.Cells[2].Value.ToString().Trim() == itemAndPrice.Split('-')[0].ToString().Trim()) { exists = "y"; g1.Cells[3].Value = Convert.ToInt32(g1.Cells[3].Value) + 1; g1.Cells[5].Value = Convert.ToDouble(g1.Cells[3].Value) * Convert.ToDouble(g1.Cells[4].Value); } } if (exists != "y") { dataGridView1.Rows.Add(sno, SifraTextBox.Text, nazivartikla, 1, cijena, cijena); } double[] columnData = new double[dataGridView1.Rows.Count]; columnData = (from DataGridViewRow row in dataGridView1.Rows where row.Cells["kolicina"].FormattedValue.ToString() != string.Empty select Convert.ToDouble(row.Cells["kolicina"].FormattedValue)).ToArray(); kolicinalabel.Text = columnData.Sum().ToString("0.00"); double[] columnData2 = new double[dataGridView1.Rows.Count]; columnData2 = (from DataGridViewRow row in dataGridView1.Rows where row.Cells["ukupno"].FormattedValue.ToString() != string.Empty select Convert.ToDouble(row.Cells["ukupno"].FormattedValue)).ToArray(); ukupnolabel.Text = columnData2.Sum().ToString("0.00"); UkupnobezpdvLabel.Text = columnData2.Sum().ToString("0.00"); label15.Text = columnData2.Sum().ToString("0.00"); double ukupno; if (!double.TryParse(ukupnolabel.Text, out ukupno)) { // ... report problem to user ... return; } double lab3; if (!double.TryParse(label3.Text, out lab3)) { //... report problem to user ... return; } label4.Text = (ukupno * lab3 / 100.0).ToString("0.00"); dataGridView1.Refresh();
my code for control button in line 123 call button click function but not work
private void TopliNapitciButton_Click(object sender, EventArgs e) { panel1.Controls.Clear(); string conString = ConnectionClass.PullData(labelgodina.Text); SqlConnection con = new SqlConnection(conString); SqlCommand cmd = new SqlCommand("SELECT naziv, FORMAT(cijena_sa_porezom, 'N2') AS cijena, data FROM dbo.roba_usluge where grupa_artikala='Napitci' and status='Aktivan'", con); // SqlCommand cmd = new SqlCommand("SELECT naziv+' - '+CAST(FORMAT(cijena_sa_porezom, 'N2') AS varchar), data FROM dbo.roba_usluge where grupa_artikala='Napitci' and status='Aktivan'", con); var da = new SqlDataAdapter(cmd); var ItemTable = new DataTable(); da.Fill(ItemTable); con.Open(); Int32 count = ItemTable.Rows.Count; con.Close(); int top = 270; int left = 8; for (int i = 0; i < count; i++) { int currentIndex = i; Button button = new Button(); button.Size = new Size(153, 200); button.BackColor = Color.Transparent; button.FlatAppearance.BorderSize = 0; button.Font = new System.Drawing.Font("Roboto", 10); button.TextAlign = ContentAlignment.BottomCenter; button.BackgroundImageLayout = ImageLayout.Zoom; // Create TableLayoutPanel TableLayoutPanel table = new TableLayoutPanel(); table.Dock = DockStyle.Fill; table.RowCount = 3; table.RowStyles.Add(new RowStyle(SizeType.Percent, 70F)); table.RowStyles.Add(new RowStyle(SizeType.Percent, 18F)); table.RowStyles.Add(new RowStyle(SizeType.Percent, 12F)); // Image PictureBox pictureBox = new PictureBox(); pictureBox.Dock = DockStyle.Fill; pictureBox.SizeMode = PictureBoxSizeMode.StretchImage; pictureBox.BackColor = Color.FromArgb(63, 77, 103); //pictureBox.Region = Region.FromHrgn(CreateRoundRectRgn(0, 0, pictureBox.Width, pictureBox.Height, 1, 1)); if (ItemTable.Rows[i]["data"] != DBNull.Value) { byte[] _byte = (byte[])ItemTable.Rows[i]["data"]; MemoryStream ms = new MemoryStream(_byte); pictureBox.Image = Image.FromStream(ms); } else { // If the image data is null, assign a default image pictureBox.Image = Properties.Resources.Empty2024x32; pictureBox.SizeMode = PictureBoxSizeMode.CenterImage; } // Label for name Label nameLabel = new Label(); nameLabel.Dock = DockStyle.Fill; nameLabel.TextAlign = ContentAlignment.MiddleCenter; nameLabel.Font = new System.Drawing.Font("Roboto", 12, FontStyle.Bold); nameLabel.ForeColor = System.Drawing.Color.White; //Bilo GRAY nameLabel.BackColor = System.Drawing.Color.FromArgb(63, 77, 103); nameLabel.Text = ItemTable.Rows[i]["naziv"].ToString(); // Label for price Label priceLabel = new Label(); priceLabel.Dock = DockStyle.Fill; priceLabel.TextAlign = ContentAlignment.MiddleCenter; priceLabel.ForeColor = System.Drawing.Color.DarkOrange; priceLabel.Font = new System.Drawing.Font("Roboto", 14, FontStyle.Bold); priceLabel.BackColor = System.Drawing.Color.FromArgb(63, 77, 103); priceLabel.Text = ItemTable.Rows[i]["cijena"].ToString() + " KM"; // Add controls to TableLayoutPanel table.Controls.Add(pictureBox, 0, 0); table.Controls.Add(nameLabel, 0, 1); table.Controls.Add(priceLabel, 0, 2); button.Left = left; button.Top = top; // Add TableLayoutPanel to button button.Controls.Add(table); panel1.Controls.Add(button); pictureBox.Click += (s, ev) => { // Access the captured currentIndex instead of i string itemName = ItemTable.Rows[currentIndex]["naziv"].ToString(); string itemPrice = ItemTable.Rows[currentIndex]["cijena"].ToString(); // Insert into DataGridView int sno = dataGridView1.Rows.Count + 1; string nazivartikla = itemName; double cijena = Convert.ToDouble(itemPrice.Replace(" KM", "")); string exists = ""; NazivArtiklaTextBox.Text = nazivartikla; Sifra_i_Podgrupa_robe(); Provjera_stanja(); foreach (DataGridViewRow row in dataGridView1.Rows) { if (row.Cells[2].Value != null && row.Cells[2].Value.ToString().Trim() == nazivartikla) { exists = "y"; row.Cells[3].Value = Convert.ToInt32(row.Cells[3].Value) + 1; row.Cells[5].Value = Convert.ToDouble(row.Cells[3].Value) * Convert.ToDouble(row.Cells[4].Value); break; // Exit loop once found } } if (exists != "y") { dataGridView1.Rows.Add(sno, SifraTextBox.Text, nazivartikla, 1, cijena, cijena); } button.Click += new EventHandler(this.btn_Click); dataGridView1.Refresh(); }; if ((i + 1) % 5 == 0) { left = 8; top += button.Height + 2; } else { left += button.Width + 2; } } }