Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kontrola forme iz klasa koje su dodate u projekat

[es] :: .NET :: .NET Desktop razvoj :: Kontrola forme iz klasa koje su dodate u projekat

[ Pregleda: 1942 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

johnnyc

Član broj: 175590
Poruke: 202
*.dynamic.sbb.rs.



Profil

icon Kontrola forme iz klasa koje su dodate u projekat22.03.2009. u 19:28 - pre 183 meseci
Pozdrav,

Jedno pocetnicko pitanje...

Kreirao sam novi C# projekat, i razvijam ekransku formu. Ime fajla je naravno Form1.cs.

U taj projekat dodao sam novu klasu (Class1.cs), i ono sto zelim je da iz te klase kontrolisem formu (Form1.cs) i kontrole koje su na njoj. Za sada mi to ne polazi za rukom.


Da li mozete da mi objasnite kako da to ostvarim? Predpostavljam da treba negde da postavim da je Form1 public ili internal ili slicno?

Hvala unapred!
 
Odgovor na temu

IvanBeograd
Kladza
Beograd

Član broj: 83376
Poruke: 379
89.216.49.*

Sajt: www.dza-bu-drz-ne-daj.com


Profil

icon Re: Kontrola forme iz klasa koje su dodate u projekat22.03.2009. u 20:44 - pre 183 meseci
U toj fajlu Class1.cs namestis npr namespace MojNameSpace,....,i sve ostalo,klase,metode,tj sta ti je potrebno.
A u form1.cs ukljucis gore tvoj namespace using MojNameSpace.I to ti je to.
SERVIA NOSTRUM REGNUM!
 
Odgovor na temu

johnnyc

Član broj: 175590
Poruke: 202
*.dynamic.sbb.rs.



Profil

icon Re: Kontrola forme iz klasa koje su dodate u projekat22.03.2009. u 21:09 - pre 183 meseci
Pazi ovako...

Form1.css

Code:

using System;
.....
using pop3;

namespace pop3
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
..........
..........
..........



Class1.css:
Code:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using pop3;

namespace pop3
{
    class Class1
    {

        public void test()
        {
            Form1.listBox1.Items.Add("esec"); // ovde vraca gresku 'pop3.Form1.listBox1' is inaccessible due to its protection level

        }
    }
}




Da li mozes da mi pomognes i da mi kazes gde gresim?

 
Odgovor na temu

Igor Gajic

Član broj: 93194
Poruke: 747
77.46.189.*



+987 Profil

icon Re: Kontrola forme iz klasa koje su dodate u projekat22.03.2009. u 21:55 - pre 183 meseci
Polje listBox1 ti je private i ne mozes mu pristupiti.

Mozes polja koja menjas deklarisati kao public (pogledaj pod Modifiers u Properties) i pristupati im iz drugih klasa.
 
Odgovor na temu

johnnyc

Član broj: 175590
Poruke: 202
*.dynamic.sbb.rs.



Profil

icon Re: Kontrola forme iz klasa koje su dodate u projekat23.03.2009. u 08:08 - pre 183 meseci
Promenuo sam, ali sada dobijam

Code:

Error    1    An object reference is required for the non-static field, method, or property 'pop3.Form1.textBox3'



Predpostavljam da u Class1.cs treba da napravim klasu, ali ne znam koju. Ili na neki drugi nacin treba da referenciram komponentu na Form1.cs.


Moze pomoc? Hvala unapred!


J.
 
Odgovor na temu

johnnyc

Član broj: 175590
Poruke: 202
*.dynamic.sbb.rs.



Profil

icon Re: Kontrola forme iz klasa koje su dodate u projekat23.03.2009. u 08:29 - pre 183 meseci
Jos nesto... Malo sam izmenjao code...

Code:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using pop3;

namespace pop3
{
    public class Class1 : Form1 // ovde sam dodao : Form1
    {

        public void test()
        {
            Console.WriteLine("ispisujemo u konzoli...."); // ovo se ispise u command promptu
            listBox1.Items.Add("ubacujemo u listbox"); // ovo se ne desava, listBox1 ostaje prazan

        }
    }
}



Iskomentarisao sam izmene u samom codeu, mozda moze da pomogne.

Jos jednom hvala unapred!
 
Odgovor na temu

Igor Gajic

Član broj: 93194
Poruke: 747
77.46.189.*



+987 Profil

icon Re: Kontrola forme iz klasa koje su dodate u projekat23.03.2009. u 09:21 - pre 183 meseci
Ti pokusavas da preko definicije klase promenis promenjivu u INSTANCI klase. To mozes da uradis samo ako su polja definisana kao static.
Druga stvar:

Code:

  public class Class1 : Form1 // ovde sam dodao : Form1


Ovako ti nasledjujes klasu Form1 i to ce se iskompajlirati ali to nije to sto tebi treba.





Fora je u ovome:

Code:


Form1 f1=new Form1();

// da bi izmenio promenjivu u f1 pises:

   f1.listBox1.Items.Add("ubacujemo u listbox");

// ti pokusavas sledece:

   Form1.listBox1.Items.Add("ubacujemo u listbox");





Probaj ovako da napises Class1:

Code:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using pop3;

namespace pop3
{
    public class Class1 
    {
        Form1 forma;


        public Class1(Form1 f1)
       {
           forma=f1;
        }

        public void test()
        {
            Console.WriteLine("ispisujemo u konzoli...."); // ovo se ispise u command promptu
            forma.listBox1.Items.Add("ubacujemo u listbox"); // ovo se ne desava, listBox1 ostaje prazan

        }
    }
}


Dakle prosledjujes konstruktoru Class1 referencu na formu koju hoces da menjas i onda mozes da menjas tu formu po zelji. Obrati paznju da je listView1 public polje. Ako hoces da menjas nesto drugo unutar forme onda moras da deklarises to polje kao public ili da koristis refleksiju.

 
Odgovor na temu

IvanBeograd
Kladza
Beograd

Član broj: 83376
Poruke: 379
89.216.49.*

Sajt: www.dza-bu-drz-ne-daj.com


Profil

icon Re: Kontrola forme iz klasa koje su dodate u projekat23.03.2009. u 09:35 - pre 183 meseci
U class.cs napises nesto npr ovako

Code:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Proba_Za_Klasu; // za form.cs

namespace MojaKlasa
{
    class Class1
    {
        public void ChangeSomeShitOnForm(ListBox lb)
        {
            lb.Items.Add("Hello");
        }
    
    }
}


form.cs

Code:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MojaKlasa;

namespace Proba_Za_Klasu
{
    public partial class Form1 : Form
    {
        MojaKlasa.Class1 mc = new Class1();

        public Form1()
        {
            InitializeComponent();           
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            mc.ChangeSomeShitOnForm(listBox1);
        }
    }
}


Probao sam radi.
SERVIA NOSTRUM REGNUM!
 
Odgovor na temu

johnnyc

Član broj: 175590
Poruke: 202
*.dynamic.sbb.rs.



Profil

icon Re: Kontrola forme iz klasa koje su dodate u projekat23.03.2009. u 09:55 - pre 183 meseci
To je to, hvala obojici
:-)
 
Odgovor na temu

[es] :: .NET :: .NET Desktop razvoj :: Kontrola forme iz klasa koje su dodate u projekat

[ Pregleda: 1942 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.