Pole Buttonů a zjištění, na který index jsem kliknul – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Pole Buttonů a zjištění, na který index jsem kliknul – .NET – Fórum – Programujte.comPole Buttonů a zjištění, na který index jsem kliknul – .NET – Fórum – Programujte.com

 

paul270
Návštěvník
22. 5. 2008   #1
-
0
-

Dobrý den.

Mám pole Buttonů:

Button[,] btn = new Button[10, 10];


S tím, že postupně vytvářím tlačítka. Následně mám metodu:
protected override void OnMouseUp(MouseEventArgs e)

{//zde bych potřeboval zjistit, na který index pole jsem kliknul, respektive na jakém indexu jsem uvolnil tlačítko myši -
//abych byl přesný}


Co chci je napsáno v dané metodě jako poznámka. Našel jsem na internetu postup jak toho docílit pomocí:

šířky (výšky) ClientSize / pocetSloupcu (Radku) a s výsledkem ještě toto:

int x = (int) (e.X / sirkaPole);//už v metodě OnMouseUp

to mi ale přijde poněkud komplikované...tak bych byl rád, kdyby jste mě navedli, jak toho docílit efektivněji?

Děkuju.

Nahlásit jako SPAM
IP: 88.103.71.–
PaLaDiN
~ Anonymní uživatel
30 příspěvků
22. 5. 2008   #2
-
0
-

Zadaj každému buttonu Name = btn_x,y. Po kliknutí stačí vytiahnuť z mena x a y. A máš po probléme ;)

Nahlásit jako SPAM
IP: 88.212.23.–
PaLaDiN
~ Anonymní uživatel
30 příspěvků
22. 5. 2008   #3
-
0
-

Alebo to môžeš spraviť jednoduchšie a dať mu ako Tag Pair<int, int> .. a potom pri clicku pracovať s tým, je to podstatne jednoduchšia logika hľadania toho indexu.

Nahlásit jako SPAM
IP: 88.212.23.–
paul270
Návštěvník
24. 5. 2008   #4
-
0
-

Dobře. Jen by mě zajímalo, proč nfunguje např. tato událost:

protected override void OnMouseClick(MouseEventArgs e)

{

}


na poli Buttonů. Ono by to pomocí toho vydělení taky nebylo špatný, ale klyž se po kliknutí na jakýkoli button nic neprovede, tak je to těžký => když dám např. událost:

protected override void OnMouseMove(MouseEventArgs e)

{
string x = Convert.ToString(e.X);
string y = Convert.ToString(e.Y);
Text = "[" + x + "," + y + "]";
}


Tak to funguje všude jen ne na poli tlačítek.

Jak to tedy udělat, aby to bylo funkční všude (klikání, MouseMove)?

Nahlásit jako SPAM
IP: 88.103.71.–
Tchibo0
Návštěvník
5. 6. 2008   #5
-
0
-

Co pridat kazdymu tlaciku zvlast Event metodu ktera to vyresi ?

btn[x,y].Click += new System.EventHandler(this.ButtonXYClick);


Nefunguje to na zadnim jinym prvku nez u kterych metodu OnMouseClick prepises.
Tudiz bys ji musel prepsat i u buttonu.

Nahlásit jako SPAM
IP: 85.70.215.–
Tchibo
paul270
Návštěvník
5. 6. 2008   #6
-
0
-

To Tchibo : Díky ti za připomenutí dalšího řešení. Pro zatím jsem to vyřešil pomocí Name, na to tvoje se určitě také mrknu.

Nahlásit jako SPAM
IP: 88.103.71.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 37 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý