Visual C# - jak wyświetlić zawartość tablicy

0

Witam

Nie wiem jak wyświetlić zawartość tablicy dwuwymiarowej (wartości liczbowe) w aplikacji okienkowej. W konsoli robiłem to tak:

public void PrezentacjaWyników()
        {
            int L = 25;
            int G = 6;
            for (int z = 0; z < iloscObsZak; z++)
            {
                for (int x = 0; x < 6; x++)
                {
                    Console.SetCursorPosition(L, G);
                    Console.WriteLine("{0}", TablicaDwuwymiarowa[z, x]);
                    L = L + 5;
                    if ((x + 1) % 6 == 0)
                    {
                        G++;
                        L = 25;
                    }
                }
            }

Czyli robiłem to na zasadzie wywietlania kolejno wszystkich elementów tablicy równocześnie ze zmienianiem pozycji kursora.

Jak można to zrobić w aplikacji okienkowej? Klikając na button chce aby mi gdzies wyswietliło taką tablicę 8 wierszy i 6 kolumn w formie takiej macierzy. Próbowałem szukać czegoś co również by ustalało pozycję kursora w richTextBoxie ale chyba cos takiego nie istnieje.

czego się do tego używa?
richTextBox, DataGrid, czy czegos innego? Prosiłbym o pokazanie jak to można zrobic.

0

Używa się tego, czego chcesz. Ale nawet w konsoli to SetCursorPosition jest zupełnie niepotrzebne i zaciemnia kod:

class Program {
  static void Main()
  {
     int[,] TablicaDwuwymiarowa = { {10,20,30},{1,2,3},{100,200,300} };
     for (int x=0;x<3;x++)
     {
       for (int y=0;y<3;y++)
          Console.Write("{0,5} ",TablicaDwuwymiarowa[x,y]);
       Console.WriteLine();
     }
  }
}
0

Masz racje ale SetCursorPosition Zastosowałem dla estetyki, ponieważ przy zróżnicowanych wartościach jedno dwu i trzycyfrowych, wynik wyświetlania tablicy za pomocą metody Write() przypominał ukośne lub poszarpane linie.

Używając SetCursorPosition miałem łądne linie pionowe poszczególnych kolumn maciezy.

poza tym chciałbym się dowiedzieć jak to samo zrobić w aplikacji okienkowej, jestem mocno początkujący prosiłbym o pokazanie.

0

Zastosuj sposób podany przez Azariena. Nie wypisujesz tekstu na ekran, tylko zapisujesz do właściwości odpowiedniej kontrolki. Np. połóż sobie textBoxa na formie i ustaw mu właściwość Multiline na true. Dalej jest już prosto :)

int[,] TablicaDwuwymiarowa = { {10,20,30},{1,2,3},{100,200,300} };
     for (int x=0;x<3;x++)
     {
       for (int y=0;y<3;y++)
          textBox1.Text += String.Format("{0,5} ",TablicaDwuwymiarowa[x,y]);
       textBox1.Text += "\r\n";
     }
0

ok dzięki, działa :) Co prawda nie jest to jeszcze w "ładnych i prostych" kolumnach ale to już sam dogrzebie. ;)
Aż się pochwale efektem - mojej PIERWSZEJ aplikacji okienkowej :D
http://i214.photobucket.com/albums/cc14/Varran/lotek.jpg
program losuje zadana ilość zakładów duzego lotka (od 1 do 8) ale bez powtórzeń, tzn. raz wylosowana w któryms zakładzie liczba nie bedzie wylosowana juz w pozostalych. Ponadto sortowanie wyników, wyświetlanie w macierzy i właśnie pozostało ładnie kolumny rozłożyć :/

macie może do polecania jakąś książkę dla laika do poczytania o programowaniu aplikacji okienkowych, opis kontrolek, programowanie zdarzeniowe itp ?

na razie czytam "Język C#. Szkoła programowania" Klaus Michelsen'a i sobie bardzo chwale bo pisana faktycznie dla laika ale porusza praktycznie tylko zagadnienia związane z aplikacjami konsolowymi.

EDIT: Znak tabulacji \t po każdej liczbie rozwiązał problem :) Ale za propozycje lektur bedę wdzięczny i tylko to pytanie pozostaje otwarte.

1 użytkowników online, w tym zalogowanych: 0, gości: 1