ITnetwork Flashka zdarma C a C++ týden
Pouze tento týden sleva až 80 % na kurzy C a C++
Brno? Vypsali jsme pro vás nové termíny školení Základů programování a OOP v Brně!
Avatar
Matěj Řezáč:14.12.2018 15:53

Ahoj, Dělám aplikaci ve windows formu. Mám tam vygenerované dvourozměrné pole buttonů [10,10]. Chci, aby se po stisknutí tlačítka spustila další metoda. Například aby se stisknuté tlačítko zbarvilo černě.

pole jsem udělal takhle:
Button[,] buttonArray = new Button[10,10];

private void CreatingNewBut­tons()
{
int horizotal = 370;
int vertical = 50;

for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
buttonArray[i,j] = new Button();
buttonArray[i,j]­.Size = new Size(40, 40);
buttonArray[i,j]­.Location = new Point(horizotal, vertical);

horizotal += 50;

this.Controls­.Add(buttonArra­y[i,j]);
}

vertical += 50;
horizotal = 370;

}

}

Mohl by někdo ryhle poradit?

Zkusil jsem: Na internetu jsem nic funkčního nenašel...

Chci docílit: Chci, aby nakonec pole buttonů fungovali jako jednoduchá mapa pro hru, po které se pohybujete stisknutím tlačítka na které chcete jít.

 
Odpovědět 14.12.2018 15:53
Avatar
Marek Uhlik
Člen
Avatar
Odpovídá na Matěj Řezáč
Marek Uhlik:14.12.2018 16:31

Čau, jestli jsem tě pochopil tak by to vypadalo tak že si uděláš funkci, kterou potom budeš volat z každého tlačítka. Přidáš funkci k event

buttonArray[I, j]. Click += new EventHandler(stisknuti);
private void stisknuti(object sender, EventArgs e)
{
 Button btn = (sender as Button) ;
 if(btn! = null)
{
   btn.BackColor = Color.Black;
}
}

Pisu to z telefonu takže tam můžou bejt někde chyby.

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět 14.12.2018 16:31
Avatar
Matěj Řezáč:14.12.2018 16:40

Děkuju, funguje :D

 
Nahoru Odpovědět 14.12.2018 16:40
Avatar
Odpovídá na Marek Uhlik
Matěj Řezáč:14.12.2018 18:07

Šlo by ještě nějak udělat, aby se po kliknutí na button, uložili do dvou INTů souřadnice buttnu v poli.
Například klinu na tlačítko se souřadnicemi v poli [3,5].
A aby se int souradniceX = 3; a int souradniceY = 5;

 
Nahoru Odpovědět 14.12.2018 18:07
Avatar
Marek Uhlik
Člen
Avatar
Odpovídá na Matěj Řezáč
Marek Uhlik:14.12.2018 19:18

Tudíž jestli jsem pochopil správně, ty když klikneš na Button tak chceš zjistit kteréj button to je z toho pole že?
Jestli ti jde o souřadnice Buttonu tak můžeš použít
Button.Left a Button.Top a vypočítat si Jakej to je button a nebo do BUTTON.TAG by sis mohl při vytváření uložit tu pozici a potom si ji odtud jen brát

 
Nahoru Odpovědět 14.12.2018 19:18
Avatar
Odpovídá na Marek Uhlik
Matěj Řezáč:14.12.2018 20:04

Moc děkuju za rady. :D
Použil jse button.tag a button.TabIndex a krásně mi to funguje.

 
Nahoru Odpovědět 14.12.2018 20:04
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.