ďťż

Ładny brzuch

Cześć!

Niestety mój poprzedni wątek - nie przyniósł odpowiedzi na gnębiący mnie problem.Zapytam więc może inaczej - coś zupełnie podstawowego ...

Mamy 3 klasy:
- klasa program (uruchamia się jako pierwsza)

package WindowsApplication1; import System.Collections.Generic.*; import System.Windows.Forms.*; /** * Summary description for Program */ public class Program { public static void main(String[] args)   {   Application.EnableVisualStyles();   Application.SetCompatibleTextRenderingDefault(false);   Application.Run(new Form1());   Class1 klasa = new Class1();   } }

- klasę, która tworzy i obsługuje okno Form - klasa Form1

package WindowsApplication1; import System.Collections.Generic.*; import System.Data.*; import System.Drawing.*; import System.ComponentModel.*; import System.Windows.Forms.*; /** * Summary description for Form1. */ public class Form1 extends System.Windows.Forms.Form { public TextBox textBox1; private System.ComponentModel.IContainer components;          public Form1()          {           InitializeComponent();           //text_ch("asadfasdf"); // jeżeli tutaj umieścić tę linię kodu to tutaj udaje sie zmienić zawartość textBox'a          } //tutaj jest kod Windows Form Designer generated code         public void text_ch(String s)         {           textBox1.set_Text(s);         } }

- a tutaj ostatnia klasa, w której próbujemy ustawić zawartość textBox'a

package WindowsApplication1; /** * Summary description for Class1. */ public class Class1 extends Form1 { public Class1() { text_ch("bla bla");//niestety ta instrukcja kodu nie przyniesie rezultatu } }

Proszę o pomoc, sugestie - mam z tym duży problem - od niedawna dopiero piszę w J# (szczególnie tryb graficzny) - więc pewnie jeszcze brak mi podstaw. Serdecznie pozdrawiam.



Ano nie przyniesie rezultatu gdyż Class1 nie wie do czego się odwołujesz. Musisz napisać
super.text_ch("bla bla")
super jest słowem kluczowym działającym podobnie jak this tylko że:
this. - odwołanie do samego siebie (to tak jakbyś napisał w Class1 Class1.)
super. - odwołanie do klasy rodzica czyli tej, z której dziedziczysz.

Można to zrobić też bez dziedziczenia, wtedy w klasie Class1, nie dziedziczysz ale piszesz takie coś:
WindowsApplication1.Form1 foremka = new WindowsApplication1.Form1; foremka.text_ch("bla bla");

Pisane z głowy ;)
Pozdro.
-----------------
Tutaj masz fajny kurs javy. A zatem też J#, bo to w zasadzie to samo (M$ wszystko podkradł ;)). Tylko biblioteki są zupełnie inne z tego co wiem... http://java-serwis.ovh.org/
Użytkownik Ktoso the Ryba edytował ten post 31 grudzień 2005, 17:38
Sprawdzałem - niestety lipa ...

hmmmm... to mi się wydaje conajmniej dziwne... Próbowałeś z tworzeniem obiektu no nie? (drugi sposób co podałem). Nie mam IDE do J# pod ręką, bo bym sprawdził... Ale sposób:

Klasa kl = new Klasa();
kl.metodaTejKlasy();

jest zdeczka pewniakiem...

Czyżby java i J# się na takim poziomie już różniły o_O Bo raczej błędu tu nie widzę...

A "lipa" mam rozumieć jako: błąd w czasie kompilacji, nie robienie niczego w końcowym programie, zawieszanie programu czy co?
Użytkownik Ktoso the Ryba edytował ten post 31 grudzień 2005, 18:50



In .net 2.0, one thread can't  change the text property of a UI element created by another thread. For doing so, the other thread need to call the BeginInvoke() method on that UI element.

For details please refer this link. It has a sample code where one thread manipulates the UI controls created by another thread.


Już się dowiedziałem w czym problem - teraz tylko muszę podłubać, w końcu zrealizować. Pozdrawiam - i dzięki za uwagę.

Rozwiązałem problem - http://www.codeguru....posts-1570.aspx - zerknijcie na ostatni na dole post - mój zresztą - gratuluje panom z Microsoftu
pomysłowości w J#... :P

nigdy bym się nie domyślił, a i w dokumentacji o tym ani słowa ...

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •