c# znajdowanie indexow w dynamicznym textboxie

0

Witam,

Jestem dość tępy i nie potrafię szukać rozwiązań, utknąłem w pewnym miejscu przy robieniu gry Sudoku i nie wiem co robić dalej.

        public TextBox[,] Tablica = new TextBox[9, 9];

        public void Start_Gra_Click(object sender, EventArgs e)
        {
            Tablica0 = Lvl();

            for (int X = 0; X < 9; X++)
            {
                for (int Y = 0; Y < 9; Y++)
                {
                        Tablica[X, Y] = new TextBox();
                        Tablica[X, Y].MaxLength = 1;
                        Tablica[X, Y].FontSize = 25;
                        Tablica[X, Y].HorizontalAlignment = Center;
                        if (Tablica0[X, Y] == 0) {}
                        else { Tablica[X,Y].Text = Tablica0[X, Y].ToString(); }

                        Tablica[X, Y].TextChanged += Tablica_TextChanged;
                        SudokuGrid.Children.Add(Tablica[X,Y]);
                        Grid.SetRow(Tablica[X, Y], X);
                        Grid.SetColumn(Tablica[X, Y], Y);
                }
            }
        }

^Tutaj wszystko akurat jest spoko, dynamicznie eventy są dodawane bla bla bla.

        void Tablica_TextChanged(object sender, EventArgs e)
        {
            TextBox Tb = (TextBox)sender;
            if (Regex.IsMatch(((TextBox)sender).Text, "([^1-9])"))
            {
                ((TextBox)sender).Text = "";
            }
        }

^Tutaj mam już schodki, o ile mam już możliwość, aby w textboxie występowały tylko liczby od 1-9 oraz długości równej 1, a mianowicie jak zrobić, abym w momencie zmieniania wartości w którymś z textboxow (załóżmy o indexie [4,5]) kod będzie pobierał indexy tego texblocka w którym coś wpisaliśmy. nie mam bladego pojęcia jak zrobić coś takiego, a na inny pomysł nie mogę wpaść zbytnio

Gdyby ktoś mnie nie rozumiał, bo mnie nikt nie rozumie to co gadam (za głupi jestem) dołączę graficzną wersje tego, co chciałem powiedzieć
Obrazek (take note: na screenie widać textboxy i texblocki, obecnie są to same texblocki)
Czerwony kwadrat - przykładowy textbox, w którym wpisuję jakąś wartość
niebieskie linie to pętla która by przeczesywała Indexy tego Textboxa, w którym coś wpisaliśmy następująca [1-9, 5] a następnie [4, 1-9]. (przykładowy index: [4,5]) Jednak nie wiem jak zrobić, aby odgórnie wybrać indexy wybranego textboxa w którym coś wppisywaliśmy

1

Nie jestem pewien, czy dobrze zrozumiałem o co pytasz -

odgórnie wybrać indexy wybranego textboxa w którym coś wppisywaliśmy

, ale może to ci coś pomoże.

W pętlach gdzie tworzysz textboxy nadawaj wartość właściwości Tag, np:

            textBox.Tag = X * 10 + Y;

a potem w evencie:

            int tag = Convert.ToInt32(((TextBox)sender).Tag);
            int X = tag / 10;
            int Y = tag % 10;

i masz dokładnie takie same X i Y jakie nadałeś im w pętlach.

0

działa ładnie, dziękuję za pomoc.

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