Avatar
blazoid
Člen
Avatar
blazoid:

Zdravím,

rád bych se obrátil s prosbou o pomoc ohledně problému s vyčítáním stringu. Mám winform aplikaci, přičemž v té mám dva formy. Ve Form1 mám proměnnou public string string_form1 a v ve form2 public_string_for­m2.

Ve form 1 mám vlastnost:

public string string_form1;

public string main_string
{
get { return string_form1; }
set { string_form1 = value; }
}

Ve form mám pak vytvořenu instanci

Form1 pokus = new Form1();

Zobrazení v rich boxu provádím stisknutím tlačítka, kde se zavolá:

TextBox.Text = pokus.main_string;

Bohužel, ať pak do stringu string_form1 naliju například z richboxu cokoliv a ve form 2 stisknu tlačítko, kterým by měl text z tohoto stringu vypsat v richboxu na form2, neděje se nic.

Jestliže ale ve form1 definuji string následovně:

public string string_form1 = "ahoj";

v richboxu ve form2 se mi toto vypíše. Ovšem jestliže do string_form1 ve form1 do této proměnné vložím cokoliv, ve form2 se to neprojeví.

Když něco podobného provádím s proměnnou typu int, normálně to tímto způsobem chodí....

Díky za pomoc.

 
Odpovědět 3.2.2015 14:26
Avatar
rwn
Člen
Avatar
Odpovídá na blazoid
rwn:

Máš to tu docela zmateně vysvětleno co máš za problém. :) Každopádně.. chyba bude v tom, že když si děláš ve form2 ten new Form1(); tak nepracuješ s vlastnostma, které sis definoval v tom tvém (hlavním) formu1, ale zakládáš ho jakoby "znovu". Teoreticky by sis musel při volání Form2 přes konstruktor poslat ten tvuj form, což ale není dobrej nápad. Řešením by mohlo být si ten tvuj richboxu ve form1 poslat přes kontruktor do form2 a tam s ním pracovat jakoby byl součástí obou formů. Je to ale dost subjektivní, protože nevím jaké máš s tím záměry a co všechno takhle chceš dělat na form1 z form2..

Nahoru Odpovědět 3.2.2015 16:12
Co můžeš naprogramovat dnes, neodkládej na zítřek.
Avatar
blazoid
Člen
Avatar
Odpovídá na rwn
blazoid:

V podstatě se dotaz konkrétně týká toho, jak je možné že když tímto způsobem vytahuju z form1 int hodnotu, ve form2 se mi normálně mění (ve form1 je tato hodnota inkrementována časovačem). Když ale ve form2 načítám (způsobem jak jsem popsal) proměnnou string, je to ve form2 prázdný. Výjimkou je případ, kdy při inicializaci proměnné do ní natvrdo nasypu nějaký znaky. Pak tyto znaky ve form2 normálně načtu.

 
Nahoru Odpovědět 3.2.2015 17: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 3 zpráv z 3.