En iyi yanıtlayıcılar
C# ile Sudoku Yapımı

Soru
-
Merhaba arkadaşlar;
C# ile 9x9 Sudoku yapmam lazım. Algoritma kısmında sorun yaşamadım şuana kadar ama form kısmında sorun yaşadım. Tabloyu yaparken textbox kullanarak yapmayı denedim ama internette araştırdığım kadarıyla DataGridView ile yapmam gerekiyor sanırım. Dataset ile de bağlantı kurmam.
Bir türlü çıkar yol bulamadım. Nasıl yapsam bu konuda yardımcı olabilecek bir makale yada video öneriniz varsa bekliyorum.
Yanıtlar
-
Ne demek nasil atayacagiz? = ile tabii ki. Ornegin:
void Main() { var numbers = new int[9, 9]; Form f = new Form {Width = 800, Height=300}; for (int row = 0; row < 9; row++) { for (int col = 0; col < 9; col++) { numbers[row, col] = (row+1) * 10 + (col+1); var t = new TextBox(); var h = t.Height; t.Dispose(); var tb = new TextBox { Left = col * 20 + 5, Width = 20, Top = row * (h+1) + 5, Tag = row * 100 + col, Text = numbers[row,col].ToString()}; tb.TextChanged += (sender, args) => { var txtB = sender as TextBox; int v = 0; var r = (int)txtB.Tag/100; var c = (int)txtB.Tag % 100; if (!int.TryParse(tb.Text, out v)) { txtB.Text = ""; } numbers[r,c] = v; }; f.Controls.Add(tb); } } var b = new Button { Text = "Show array values", Left = 20 * 9 + 15, Top = 10 }; var ta = new TextBox { Multiline = true, ReadOnly = true, Top = 50, Left = b.Left, Height = 190, Width = 500, Font = new Font("Courier New",10)}; b.Click += (sender, args) => { StringBuilder sb = new StringBuilder(); for (int row = 0; row < 9; row++) { for (int col = 0; col < 9; col++) { sb.AppendFormat("{0,5}|",numbers[row, col]); } sb.AppendLine(); } ta.Text = sb.ToString(); }; f.Controls.Add(b); f.Controls.Add(ta); f.ShowDialog(); }
Istersen bindingsource ile ugrasabilirsin ama degmez.
- Yanıt Olarak Öneren Kyamuran SalibryamMicrosoft contingent staff, Moderator 13 Mayıs 2016 Cuma 08:32
- Yanıt Olarak İşaretleyen Kyamuran SalibryamMicrosoft contingent staff, Moderator 17 Mayıs 2016 Salı 07:24
Tüm Yanıtlar
-
-
-
-
Ne demek nasil atayacagiz? = ile tabii ki. Ornegin:
void Main() { var numbers = new int[9, 9]; Form f = new Form {Width = 800, Height=300}; for (int row = 0; row < 9; row++) { for (int col = 0; col < 9; col++) { numbers[row, col] = (row+1) * 10 + (col+1); var t = new TextBox(); var h = t.Height; t.Dispose(); var tb = new TextBox { Left = col * 20 + 5, Width = 20, Top = row * (h+1) + 5, Tag = row * 100 + col, Text = numbers[row,col].ToString()}; tb.TextChanged += (sender, args) => { var txtB = sender as TextBox; int v = 0; var r = (int)txtB.Tag/100; var c = (int)txtB.Tag % 100; if (!int.TryParse(tb.Text, out v)) { txtB.Text = ""; } numbers[r,c] = v; }; f.Controls.Add(tb); } } var b = new Button { Text = "Show array values", Left = 20 * 9 + 15, Top = 10 }; var ta = new TextBox { Multiline = true, ReadOnly = true, Top = 50, Left = b.Left, Height = 190, Width = 500, Font = new Font("Courier New",10)}; b.Click += (sender, args) => { StringBuilder sb = new StringBuilder(); for (int row = 0; row < 9; row++) { for (int col = 0; col < 9; col++) { sb.AppendFormat("{0,5}|",numbers[row, col]); } sb.AppendLine(); } ta.Text = sb.ToString(); }; f.Controls.Add(b); f.Controls.Add(ta); f.ShowDialog(); }
Istersen bindingsource ile ugrasabilirsin ama degmez.
- Yanıt Olarak Öneren Kyamuran SalibryamMicrosoft contingent staff, Moderator 13 Mayıs 2016 Cuma 08:32
- Yanıt Olarak İşaretleyen Kyamuran SalibryamMicrosoft contingent staff, Moderator 17 Mayıs 2016 Salı 07:24