Akce po stisknutí MaximizeBox – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Akce po stisknutí MaximizeBox – .NET – Fórum – Programujte.comAkce po stisknutí MaximizeBox – .NET – Fórum – Programujte.com

 

Andy
~ Anonymní uživatel
42 příspěvků
8. 4. 2009   #1
-
0
-

Zdravím,
mám jeden dotaz. Potřebuji provést určitou akci po stisknutí tlačítka maximalizace (MaximizeBox) v C#. Vím že ve Visual C# v designeru jde 2x kliknout např. na button a následně se vytvoří metoda, která se provede v případu stisknutí buttonu. Bohužel u MaximizeBoxu jsem nic takového nenašel. Nevěděl by někdo, jak lze detekovat stisknutí MaximizeBoxu, případně jestli je to vůbec možné?

Předem díky :smile1:

Nahlásit jako SPAM
IP: 85.207.121.–
Balaam0
Návštěvník
8. 4. 2009   #2
-
0
-

No pokud vím (možná se pletu, ostatní kdyžtak opraví, ukamenují a já nevím, co vše), tlačítko maximalizace má předem danou funkci, kterou není možné změnit. Co potřebuješ udělat, když uživatel klikne na maximalizaci? Pokud se jedná o zvětšení ostatních prvků v závislosti na velikosti formuláře, tak k tomu slouží procedura resize, kterou obsahuje formulář.

Nahlásit jako SPAM
IP: 83.208.241.–
The lesbians next door bought me a rolex for my birthday. I think they misunderstood when I said I wanna watch...
Chrasty
~ Redaktor
+4
Posthunter
8. 4. 2009   #3
-
0
-

To Balaam : On ale ani nechtěl změnit funkcionalitu toho tlačítka, jen zachytit jeho událost, která bohužel není:)

Jediná možnost je skutečně zachytit událost Resize, která se vyvolá při jakékoliv změně velikosti okna, a mrknout se dovnitř vlastnosti IsMaximized a pokud je true, znamená to, že okno je maximalizováno a můžeš pak provádět svůj vlastní kód:)

Nahlásit jako SPAM
IP: 193.179.196.–
Andy
~ Anonymní uživatel
42 příspěvků
8. 4. 2009   #4
-
0
-

To Balaam : Ano, jedná se o zvětšení komponenty WebBrowser a přemístění 1 textboxu a buttonu (na střed). Mimochodem, něco jsem nagooglil o té proceduře Resize, ale pořád nechápu jak ji aplikovat právě při maximalizaci.

Nahlásit jako SPAM
IP: 85.207.121.–
Chrasty
~ Redaktor
+4
Posthunter
8. 4. 2009   #5
-
0
-

To Andy : Není to procedura, ale událost, která se dá stejně jako ostatní události zachytit. Tím, jak v návrháři klikneš na tlačítko a ono ti to udělá handler události Click, tak se v pozadí aplikace zapíše podobný kód:

button1.Click += button1_Click;
Takže je to celkem jednoduché, pokud chceš zaregistrovat událost Resize metodě Form1_Resize pro hlavní form, napíšeš tento kód:
this.Resize += Form1_Resize;

Nahlásit jako SPAM
IP: 193.179.196.–
Andy
~ Anonymní uživatel
42 příspěvků
8. 4. 2009   #6
-
0
-

To Chrasty : Díky moc, teď už to funguje jak má :)

Nahlásit jako SPAM
IP: 85.207.121.–
rudolf_franek0
Stálý člen
8. 4. 2009   #7
-
0
-

Napadlo me jeste trochu jine reseni. Pouziji

public class WebPanel : Panel

{
DockOrCenterlLayoutEngine _engine =
new DockOrCenterlLayoutEngine();

public override LayoutEngine LayoutEngine {
get { return _engine; } }
}

public class DockOrCenterlLayoutEngine : LayoutEngine
{
public override bool Layout(
object container,
LayoutEventArgs layoutEventArgs)
{
Panel panel = container as Panel;
if (panel == null) return false;
Point center = new Point(
panel.Width / 2, panel.Height / 2);
foreach (Control ctrl in panel.Controls)
{
if (ctrl.Dock == DockStyle.None)
{
ctrl.Location = new Point(
center.X - ctrl.Width / 2,
center.Y - ctrl.Height / 2);
}
else if (ctrl.Dock == DockStyle.Fill)
{
ctrl.Location = new Point();
ctrl.Size = panel.Size;
}
}
return false;
}
}
Uvedeny kod staci pastenout pod kod kde je definovan Form
Udelam build projektu.
Vyse definovany WebPanel pretahnu z toolboxu na Form a nastavim ho tak, aby menil velikost spolu s Formem
(Bud pouziji Anchor, nebo nastavim vlastnost Dock na Fill)
Dam do nej jeden WebBrowser a jeden normalni Panel.
Vlastnost Dock WebBrowser-u nastavim na Fill.
Do toho "obycejneho" Panel-u dam pozadovany Button a TextBox a doladim mysi jejich vzhled.
A melo by to delat co bylo zadano.

Nahlásit jako SPAM
IP: 90.178.66.–
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, 48 hostů

Podobná vlákna

Zjištění stisknutí klávesy — založil Garret Raziel

Odchycení stisknutí tlačítka — založil Jiří Sokolovský

 

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