Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

problem s prebacivanjem teksta iz Classe na WinForm RTB

  • 4 odgovora
  • 3.068 pregleda

Najnovija ↓

problem s prebacivanjem teksta iz Classe na WinForm RTB 29.11.2006. u 13:06 · pre 242 meseca #1
Unutar WinForm sam stavio Public RichTextBox.

Te unutar Class-e imam
ili
WinForm wf = new WinFrom()

public neka_funkcija_koja_se_izvrsava()
{
//znaci ovu funkciju sam pozvao i uredno se izvrsava jer ako stavim MessageBox on uredno javlja sto se radi.
// al ovo se nece odradit
wf.rtb.AppendText("neki tekst"); // e al to se nece pojavit na rtb
}


ista stvar samo drugacije pozivanje


Te unutar Class-e imam

public neka_funkcija_koja_se_izvrsava()
{
//znaci ovu funkciju sam pozvao i uredno se izvrsava jer ako stavim MessageBox on uredno javlja sto se radi.
// al ovo se nece odradit
WinForm.rtb.AppendText("neki tekst"); // e al to se nece pojavit na rtb
}

ako probam napravit u WinForm funkciju
public void dodaj(string neki)
{

}
//pozovem iz Classe s
WinForm.dodaj("Yeeeeey")
{

}

i eto error-a [C# Error] Ping.cs(228): An object reference is required for the nonstatic field, method, or property 'test001.MainForm.dodaj_rtbPingReplay(string)'
Potpis
xxxrugby: "We are all philosophers, when question is about politics!"
Re: problem s prebacivanjem teksta iz Classe na WinForm RTB 29.11.2006. u 22:36 · pre 242 meseca #2
Pozdrav,

prvo odakle pozivas tu klasu tj. metodu. Prikazi malo vise koda kako bih mogao da ti kazem gde gresis.

Moja interpretacija

Code:
    
   public class WinForm : Form
   {
        public System.Windows.Forms.RichTextBox rtv;

        private void InitializeComponent()
        {
            this.rtb = new System.Windows.Forms.RichTextBox();
        }
        
        public WinForm()
        {
            InitializeComponent();
        }
   }

   public class Glavna : Form
    {
        private WinForm wf = new WinForm();

        public Glavna()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            wf.Show();
        }

        private void button2_Click(object sender, EventArgs e)
        {
           if(wf!=null) 
               wf.rtb.AppendText("neki tekst");
        }
    }


Radi, provereno!

Nadam se da si na to mislio :)

PS
ne mozes pozivati ne staticne metode iz klase za koju nisi prethodno napravio instancu iste.
Potpis
nije lepo da budem lud a da to ne znam
Re: problem s prebacivanjem teksta iz Classe na WinForm RTB 30.11.2006. u 10:24 · pre 242 meseca #3
imam u WinForm-i ili Glavnoj formi.

Code:
public class MainForm : System.Windows.Forms.Form
{
     public System.Windows.Forms.RichTextBox rtb;

     private void InitializeComponent()
     {
          this.rtb = new System.Windows.Forms.RichTextBox();
     }

                public MainForm()
        {
            //
            // Required for Windows Form Designer support
            //
            InitializeComponent();

            //
            // TODO: Add any constructor code after InitializeComponent call
            //
        }
}


Class-a
Code:
public class Ping
{
     private MainForm mf = new MainForm();

     public void PingHost(string strPingHost, int iPingBytes, uint lngPingCount, uint ngPingTimeout)
     {
          // sad tu ide kod i replay koj bi trebao ic u rtb,.
          mf.rtb.AppendText ("    Minimum = "+iMinTransmitTime.ToString() +"ms, Maximum =  "+iMaxTransmitTime+"ms, Average =  "+tmp.ToString() +"ms");
     }

}


E al mi to ne sljaka. Nece iz te classe stavit replay u rtb s MainFormi.

Hmmmm. Ako ubacim mf.show() onda mi nanovo otvara cijeli MainForm sto mi ne odgovara.
Il ja negdje griješim s krivim pozivanjem.
Potpis
xxxrugby: "We are all philosophers, when question is about politics!"
Re: problem s prebacivanjem teksta iz Classe na WinForm RTB 30.11.2006. u 14:01 · pre 242 meseca #4
Problem: Ti hoces na main formi koja je vec instacirana i pokrenuta da smestis vrednost u rich text box, ako se ne varam.

Greska : Problem je sto ti kreiras novu instancu klase MainForm i ocekujes da se to odnosi na prvu instancu, tu ti je greska. Tvoj kod radi ali ne ono sto ti ocekujes.

Resenje: Prosledi klasi Ping referencu na MainFom i nemoj kreirati novu instancu vec samo prosledi tu referencu u wf varijablu.

Pitanje: Odakle kreiras i pozivas klasu Ping?
Potpis
nije lepo da budem lud a da to ne znam
Re: problem s prebacivanjem teksta iz Classe na WinForm RTB 30.11.2006. u 16:00 · pre 242 meseca #5
Je bobanM imas pravo. To je problem.
Riješio sam taj problemcic na malo gori naćin al sad mi se to čak čini bolje.
Al isto to će mi trebat na drugoj formi pa ču probat napravit.



Pitanje: Odakle kreiras i pozivas klasu Ping?
Iz MainForm klase.
Te radim unutar funkcije poziv na klasu Ping.
Potpis
xxxrugby: "We are all philosophers, when question is about politics!"
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme