C# - předání proměných – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

C# - předání proměných – .NET – Fórum – Programujte.comC# - předání proměných – .NET – Fórum – Programujte.com

 

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

Ahoj, dělám upload obrázků. Mám dva formuláře, login.cs a uploader.cs. Podle
názvů zdrojových souborů snad každdý chápe co která třída dělá.

Ze třídy login potřebuji předat proměnou uživatel třídě uploader. Rozhodl jsem
se pro následující dvě řešení. První je:

ve třídě login:

string users;

users = uživatel.Text;
uploader upload = new uploader();
upload.jmeno = users;


a pak ve třídě uploader:
nastavím proměnou jméno jako veřejnou:
public string jmeno;


a následně přiřadím proměnou jméno prvku prihlasen_lista.Text

a druhé řešení:

ve třídě uploader mám metodu prihlase(string jmeno)

public void prihlaseny(string jmeno)

{
prihlasen_lista.Text = jmeno;
}

ve třídě login:

string users;

users = uživatel.Text;
uploader upload = new uploader();
upload.prihlaseny(users);


Tak a teď k problému, prolez sem internet od a po z a od z po a několikrát, a
obě dvě řešení by měli fungovat, ale mě nefunguje ani jedno. Kde dělám botu.
Díky

Editoval petrl:
Zkusil jsem ještě předání proměné rovnou konstruktoru:

třída uploader:
public uploader()

{
InitializeComponent();
}

public uploader(string jmeno)
{
prihlaseny(jmeno);
InitializeComponent();
}


Třída login:
string users;

users = uživatel.Text;
uploader upload = new uploader(users);
Close();


No vše se zkompiluje ale př běhu aplikace vzniká neošetřená vyjímka:
System.NullReferenceException: Odkaz na objekt není nastaven na instanci objektu.


Budu rád za každou pomoc

Nahlásit jako SPAM
IP: 82.150.166.–
Na fóru mě naleznete pod novým nickem => plasmo
Danny
~ Anonymní uživatel
5 příspěvků
25. 5. 2008   #2
-
0
-

Ja na to nic spatnyho nejak nevidim.Na jakem radku ti to haze Null pointer?A haze ti ho pri prekladu nebo pro behu?

Nahlásit jako SPAM
IP: 85.135.97.–
25. 5. 2008   #3
-
0
-

To petrl : A zkusil jsi debugger?

Nahlásit jako SPAM
IP: 84.21.124.–
Dušan Janošík | web: djanosik.cz, @djanosik
petrl0
Návštěvník
26. 5. 2008   #4
-
0
-

To Danny : Je to za běhu.
To djanosik : Ano zkusil.

Pro úplnost:

Informace o vyvolání ladění JIT najdete na konci této zprávy,

nikoli v tomto dialogovém okně.

************** Text výjimky **************
System.NullReferenceException: Odkaz na objekt není nastaven na instanci objektu.
v image_uloader.uploader..ctor(String jmeno) v C:\Users\Péťa\Documents\Visual Studio 2008\Projects\image_uloader\image_uloader\uploader.cs:řádek 26
v image_uloader.Login.button1_Click(Object sender, EventArgs e) v C:\Users\Péťa\Documents\Visual Studio 2008\Projects\image_uloader\image_uloader\Login.cs:řádek 30
v System.Windows.Forms.Control.OnClick(EventArgs e)
v System.Windows.Forms.Button.OnClick(EventArgs e)
v System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
v System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
v System.Windows.Forms.Control.WndProc(Message& m)
v System.Windows.Forms.ButtonBase.WndProc(Message& m)
v System.Windows.Forms.Button.WndProc(Message& m)
v System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
v System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
v System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Načtená sestavení **************
mscorlib
Verze sestavení: 2.0.0.0
Verze Win32: 2.0.50727.1434 (REDBITS.050727-1400)
Základ kódu: file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
image_uloader
Verze sestavení: 1.0.0.0
Verze Win32: 1.0.0.0
Základ kódu: file:///C:/Users/P%E9ťa/Documents/Visual%20Studio%202008/Projects/image_uloader/image_uloader/bin/Release/image_uloader.exe
----------------------------------------
System.Windows.Forms
Verze sestavení: 2.0.0.0
Verze Win32: 2.0.50727.1434 (REDBITS.050727-1400)
Základ kódu: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
Verze sestavení: 2.0.0.0
Verze Win32: 2.0.50727.1434 (REDBITS.050727-1400)
Základ kódu: file:///C:/Windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
Verze sestavení: 2.0.0.0
Verze Win32: 2.0.50727.1434 (REDBITS.050727-1400)
Základ kódu: file:///C:/Windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
mscorlib.resources
Verze sestavení: 2.0.0.0
Verze Win32: 2.0.50727.1434 (REDBITS.050727-1400)
Základ kódu: file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
System.Windows.Forms.resources
Verze sestavení: 2.0.0.0
Verze Win32: 2.0.50727.1434 (REDBITS.050727-1400)
Základ kódu: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_cs_b77a5c561934e089/System.Windows.Forms.resources.dll
----------------------------------------

************** Ladění JIT **************
Aby bylo povoleno ladění JIT, musí konfigurační soubor
pro tuto aplikaci nebo počítač (machine.config) mít
v oddílu system.windows.forms nastavenou hodnotu njitDebugging.
Aplikace rovněž musí být kompilována s povoleným
laděním.

Příklad:

<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>

Je-li ladění JIT povoleno, budou všechny neošetřené výjimky
odeslány ladicímu programu JIT, který je registrován v počítači,
a nebudou zpracovány tímto dialogovým oknem.


Nahlásit jako SPAM
IP: 82.150.166.–
Na fóru mě naleznete pod novým nickem => plasmo
26. 5. 2008   #5
-
0
-

To petrl : Tak ho zkus ještě jednou a zjisti si, kterej objekt je null.

Nahlásit jako SPAM
IP: 84.21.124.–
Dušan Janošík | web: djanosik.cz, @djanosik
petrl0
Návštěvník
26. 5. 2008   #6
-
0
-

To djanosik : Tak už jsem zjistil že to dělá tahle metoda:



public void prihlaseny(string jmeno)
{
prihlasen_lista.Text = jmeno;
}


Jak mu tu instanci prosím nastavím, už jsem prolez vše co se dalo, a angličtina je pro mě velkej problém :smile10:

Nahlásit jako SPAM
IP: 82.150.166.–
Na fóru mě naleznete pod novým nickem => plasmo
petrl0
Návštěvník
26. 5. 2008   #7
-
0
-

Tak jsem na to přišel.

public uploader()

{
InitializeComponent();
}

public uploader(string jmeno)
{
uploader u = new uploader();
u.prihlaseny(jmeno);
InitializeComponent();
}


chtělo to zapsat takto.... :smile1:

Nahlásit jako SPAM
IP: 82.150.166.–
Na fóru mě naleznete pod novým nickem => plasmo
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, 6 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ý