Pouziti textBoxu v jine tride – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Pouziti textBoxu v jine tride – .NET – Fórum – Programujte.comPouziti textBoxu v jine tride – .NET – Fórum – Programujte.com

 

Mutagen
~ Anonymní uživatel
549 příspěvků
9. 11. 2011   #1
-
0
-

Zdravim ...

Mam takovy problem. Chci v jinem souboru ( class ) pouzit textbox a ostatni komponenty ale kdyz pouziju v tom classu MainForm Neco = new MainForm(); tak mi to vyhodi tento error "An unhandled exception of type 'System.StackOverflowException'" Takze se chci zeptat jak by tohle slo vyresit ?

Pokud to nejde tak se chci zeptat jak v MainFormu muzu udelat funkci ktera bude cekat nez se mi v jiny class dokonci event ?

Díky moc za odpovedi

Nahlásit jako SPAM
IP: 89.190.90.–
9. 11. 2011   #2
-
0
-

#1 Mutagen
Zdravím,

je dost možný, že tam někde je nekonečná smyčka (nebo tak něco). Ukázka kódu by určitě pomohla. Čekat na dokončení eventu? V jaké situaci a proč?

Nahlásit jako SPAM
IP: 91.217.52.–
Dušan Janošík | web: djanosik.cz, @djanosik
Mutagen
~ Anonymní uživatel
549 příspěvků
9. 11. 2011   #3
-
0
-

#2 djanosik
Takhle vypada Class

Captcha Captcha = new Captcha();
MainForm Main = new MainForm();
public string Page;
public void NavigateBrowser(WebBrowser Web, string Url)
{
	Web.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(Web_DocumentCompleted);
        Web.Navigate(Url);
}

private void Web_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
	WebBrowser MyWeb = ((WebBrowser)sender);
        MyWeb.Focus();
        Page = MyWeb.Document.Body.InnerHtml;

        try
        {
            if (Page == null) { NavigateBrowser(MyWeb, MyWeb.Url.ToString()); }
            else
            {
                if (CheckCaptcha())
                {
                    Captcha.Captcha_Find(MyWeb);
                 }
                 else
                 {
                    LoadAll();
                    Main.textBox1.Text = Page;
                  }
             }
        }

        catch { }

}

A z mainformu to volam takhle 

private void label1_Click(object sender, EventArgs e)
{
	NewClass.NavigateBrowser(Web, Web.Url.ToString());
}
Nahlásit jako SPAM
IP: 89.190.90.–
Mutagen
~ Anonymní uživatel
549 příspěvků
10. 11. 2011   #4
-
0
-

Nikoho nic nenapada? :(

Nahlásit jako SPAM
IP: 89.190.90.–
10. 11. 2011   #5
-
0
-

Nevím, asi ne. Ta výjimka je nejspíš způsobená rekurzivním voláním metody NavigateBrowser.

Nahlásit jako SPAM
IP: 91.217.52.–
Dušan Janošík | web: djanosik.cz, @djanosik
Mutagen
~ Anonymní uživatel
549 příspěvků
10. 11. 2011   #6
-
0
-

#5 djanosik
A slo by teda udelat aby to cekalo v MainFormu na Dokonceni eventu ? Nebo to budu muset napsat v MainFormu ?

Nahlásit jako SPAM
IP: 89.190.90.–
10. 11. 2011   #7
-
0
-

#6 Mutagen
A proč čekat na dokončení eventu? Nestačí provést danou operaci až v době, kdy ta událost proběhne?

Nahlásit jako SPAM
IP: 91.217.52.–
Dušan Janošík | web: djanosik.cz, @djanosik
Mutagen
~ Anonymní uživatel
549 příspěvků
10. 11. 2011   #8
-
0
-

#7 djanosik
A toho docilim jak ?

ja jen ze kdyz volam v MainFormu

NewClass.NavigateBrowser(Web, Web.Url.ToString());

textBox1.Text = NewClass.Page;

tak to probehne hnedka a neukaze se to tam

Nahlásit jako SPAM
IP: 89.190.90.–
10. 11. 2011   #9
-
0
-

#8 Mutagen
To lze právě řešit událostma, nebo zasíláním zpráv. V NewClass můžeš vytvořit událost, kterou budeš volat po skončení Web_DocumentCompleted. V MainFormu pak k události připojíš handler a provedeš požadovaný operace. A někde bys měl ten handler zase odpojit, je-li to možný.

Nahlásit jako SPAM
IP: 91.217.52.–
Dušan Janošík | web: djanosik.cz, @djanosik
Mutagen
~ Anonymní uživatel
549 příspěvků
10. 11. 2011   #10
-
0
-

#9 djanosik
A mohl bys me aspon trochu napovedet jako "kodove" jak to udelat? Vubec me nic nenapada.

Nahlásit jako SPAM
IP: 89.190.90.–
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, 21 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ý