En iyi yanıtlayıcılar
butonlu satş

Soru
-
Ana ekranda 20 tane buton var. Butonun birine sağ tıklayınca ürün ata yazısı çıkıyor . Ürün ata yazısına basınca bi tane form açılıcak ve bu formun içinde datagridview var bu datagridin içinde de ürünler( ürünbarkodu , ürün adı, fiyat) bu bilgiler bulunuyor. Ben hangi ürünü seçersem o butona o ürünü atıcak eğer butonda daha önceden atanmış ürün varsa silip yeni seçtiğinin atamasını yapıcak. Atama yaptıktan sonra açılan form kapanıcak ve o butonun üstünde atanan ürünün ismi yazıcak. O butona tıklayınca datagridview a ekleme yapıcak. Biraz uzun oldu ama gerçekten hiçbir şey yapamıyorum bu konuda yardım ederseniz sevinirim
- Düzenleyen batuhan2335 25 Şubat 2020 Salı 10:22 Yanlış anlatım
Yanıtlar
-
void Main() { DataTable tbl = new DataTable(); new SqlDataAdapter("select * from products", @"server=.\SQLExpress;Database=Northwind;Trusted_Connection=yes").Fill(tbl); Form f1 = new Form { Height = 250, Width = 600 }; for (int i = 0; i < 20; i++) { var button = new Button { Left = i / 5 * 150 + 10, Top = i % 5 * 40 + 10, Text = $"Urun{i}", Name = $"urun{i}" }; button.MouseDown += (sender, e) => { if (e.Button == MouseButtons.Right) { var secim = new Secim(tbl); secim.ShowDialog(); if (secim.DialogResult == DialogResult.OK) { var product = tbl.AsEnumerable().SingleOrDefault(x => x.Field<int>("ProductId") == secim.SecilenId); if (product != null) { var urun = product.Field<string>("ProductName"); button.Text = urun; button.Tag = secim.SecilenId.ToString(); } } } }; f1.Controls.Add(button); } f1.Show(); } public class Secim : Form { private DataGridView dgv = new DataGridView { Dock = DockStyle.Fill, ReadOnly = true, SelectionMode = DataGridViewSelectionMode.FullRowSelect }; public int SecilenId { get; set; } public Secim(DataTable t) { this.Controls.Add(dgv); dgv.DataSource = t; dgv.CellContentDoubleClick += (sender, e) => { SecilenId = (int)dgv.Rows[e.RowIndex].Cells["ProductId"].Value; this.DialogResult = DialogResult.OK; this.Close(); }; } }
How to create a Minimal, Reproducible Example
The way to Go.
World's most advanced open source (object-) relational Database.
Flutter (for mobile, for web & desktop.- Yanıt Olarak İşaretleyen batuhan2335 26 Şubat 2020 Çarşamba 07:52
-
Hepsi yazıyor zaten :( Sen C# temellerini pas geçip dogrudan bir uygulama yapmak istiyorsun. Once C# temellerini calissan daha hızlı ilerlersin.
Ornek:
button.MouseDown += (sender, e) => { if (e.Button == MouseButtons.Right) { var secim = new Secim(tbl); secim.ShowDialog(); if (secim.DialogResult == DialogResult.OK) { var product = tbl.AsEnumerable().SingleOrDefault(x => x.Field<int>("ProductId") == secim.SecilenId); if (product != null) { var urun = product.Field<string>("ProductName"); button.Text = urun; button.Tag = secim.SecilenId.ToString(); } } } };
Yaziyorsa, bu senin butonlardan birisinin (hepsinin aslında onun icin yeni class yapmaya öğrenmelisin) MouseDown event koduna:
if (e.Button == MouseButtons.Right) { var secim = new Secim(tbl); secim.ShowDialog(); if (secim.DialogResult == DialogResult.OK) { var product = tbl.AsEnumerable().SingleOrDefault(x => x.Field<int>("ProductId") == secim.SecilenId); if (product != null) { var urun = product.Field<string>("ProductName"); button.Text = urun; button.Tag = secim.SecilenId.ToString(); } } }
yazmak demek. Tabii oradaki isimlerin değişmesi gerekebilir.
How to create a Minimal, Reproducible Example
The way to Go.
World's most advanced open source (object-) relational Database.
Flutter (for mobile, for web & desktop.- Yanıt Olarak İşaretleyen batuhan2335 26 Şubat 2020 Çarşamba 07:52
Tüm Yanıtlar
-
-
void Main() { DataTable tbl = new DataTable(); new SqlDataAdapter("select * from products", @"server=.\SQLExpress;Database=Northwind;Trusted_Connection=yes").Fill(tbl); Form f1 = new Form { Height = 250, Width = 600 }; for (int i = 0; i < 20; i++) { var button = new Button { Left = i / 5 * 150 + 10, Top = i % 5 * 40 + 10, Text = $"Urun{i}", Name = $"urun{i}" }; button.MouseDown += (sender, e) => { if (e.Button == MouseButtons.Right) { var secim = new Secim(tbl); secim.ShowDialog(); if (secim.DialogResult == DialogResult.OK) { var product = tbl.AsEnumerable().SingleOrDefault(x => x.Field<int>("ProductId") == secim.SecilenId); if (product != null) { var urun = product.Field<string>("ProductName"); button.Text = urun; button.Tag = secim.SecilenId.ToString(); } } } }; f1.Controls.Add(button); } f1.Show(); } public class Secim : Form { private DataGridView dgv = new DataGridView { Dock = DockStyle.Fill, ReadOnly = true, SelectionMode = DataGridViewSelectionMode.FullRowSelect }; public int SecilenId { get; set; } public Secim(DataTable t) { this.Controls.Add(dgv); dgv.DataSource = t; dgv.CellContentDoubleClick += (sender, e) => { SecilenId = (int)dgv.Rows[e.RowIndex].Cells["ProductId"].Value; this.DialogResult = DialogResult.OK; this.Close(); }; } }
How to create a Minimal, Reproducible Example
The way to Go.
World's most advanced open source (object-) relational Database.
Flutter (for mobile, for web & desktop.- Yanıt Olarak İşaretleyen batuhan2335 26 Şubat 2020 Çarşamba 07:52
-
-
Hepsi yazıyor zaten :( Sen C# temellerini pas geçip dogrudan bir uygulama yapmak istiyorsun. Once C# temellerini calissan daha hızlı ilerlersin.
Ornek:
button.MouseDown += (sender, e) => { if (e.Button == MouseButtons.Right) { var secim = new Secim(tbl); secim.ShowDialog(); if (secim.DialogResult == DialogResult.OK) { var product = tbl.AsEnumerable().SingleOrDefault(x => x.Field<int>("ProductId") == secim.SecilenId); if (product != null) { var urun = product.Field<string>("ProductName"); button.Text = urun; button.Tag = secim.SecilenId.ToString(); } } } };
Yaziyorsa, bu senin butonlardan birisinin (hepsinin aslında onun icin yeni class yapmaya öğrenmelisin) MouseDown event koduna:
if (e.Button == MouseButtons.Right) { var secim = new Secim(tbl); secim.ShowDialog(); if (secim.DialogResult == DialogResult.OK) { var product = tbl.AsEnumerable().SingleOrDefault(x => x.Field<int>("ProductId") == secim.SecilenId); if (product != null) { var urun = product.Field<string>("ProductName"); button.Text = urun; button.Tag = secim.SecilenId.ToString(); } } }
yazmak demek. Tabii oradaki isimlerin değişmesi gerekebilir.
How to create a Minimal, Reproducible Example
The way to Go.
World's most advanced open source (object-) relational Database.
Flutter (for mobile, for web & desktop.- Yanıt Olarak İşaretleyen batuhan2335 26 Şubat 2020 Çarşamba 07:52
-
Hocam ben şurayı çözemedim de ben zaten sağ tıklayıp yeni bir form açıyorum ve orda ürünleri listeliyorum. Szin kodları kullandığım zaman toplamda 2 tane form oluyo. Sadecene benim açtığım formda datagridden seçicem butona basıcam butona basınca form kapanıcak ve ürün ata dediğim butona bilgileri alıcak
-
:) Anydesk'i acar misin.
How to create a Minimal, Reproducible Example
The way to Go.
World's most advanced open source (object-) relational Database.
Flutter (for mobile, for web & desktop.