Chyba C#: premenna nepristupna vdaka protection level – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Chyba C#: premenna nepristupna vdaka protection level – .NET – Fórum – Programujte.comChyba C#: premenna nepristupna vdaka protection level – .NET – Fórum – Programujte.com

 

arrayList
~ Anonymní uživatel
7 příspěvků
29. 10. 2015   #1
-
0
-

Zdravim,

V C# som zaciatocnik, snazim sa vo windows form naprogramovat pomerne jednoduchy soft urceny pre hotel na evidenciu novych zakaznikov a vyhladavanie sucasnych (neskor bude rozsireny o dalsie veci ako vypocet trzieb etc).

Vyzera nejak takto:

1. formular je uvodny a je urceny iba na otvaranie novych okien.

2. formular funguje ako vyskakovacie okno, kde sa registruju zakaznici - vyplnia sa udaje, po kliknuti na button sa zakaznik vlozi do arrayListu (kazdy jeho udaj do ineho,ktore si nasledne skusim nejak pospajat cez indexy poli) a okno sa zatvori.

a posledny 3. formular je vyhladavac sucasnych zakaznikov, zadane meno z texboxu sa ulozi do premennej nasledne sa v "arraylist meno" toto meno vyhlada. 

A tu som skoncil. 

na premennu meno (24line vo form3) vyhadzuje nasledujucu chybu:

novyuziv_form.meno je nepristupny pre jeho protection level

Skusal som pomenit vsetky modifikatory v zdrojaku na public, nepomohlo

Hram sa s tym bez vysledku uz niekolko hodin,skusali to aj dalsi, bezvysledne. Vie prosim vas niekto v com moze byt problem?

Nahlásit jako SPAM
IP: 89.173.3.–
arrayList
~ Anonymní uživatel
7 příspěvků
29. 10. 2015   #2
-
0
-

***********FORM1*********

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


namespace hotel
{
    public partial class main_form : Form
    {
        public main_form()
        {
            InitializeComponent();
            
        }

        public void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
     
        }

        public void button_novyzak_Click(object sender, EventArgs e)
        {
            var main_form = new novyuziv_form();
            main_form.Show();


        }

        public void button1_Click(object sender, EventArgs e)
        {
            var najst_form = new najstuziv_form();
            najst_form.Show();
        }
    }
}

Nahlásit jako SPAM
IP: 89.173.3.–
arrayList
~ Anonymní uživatel
7 příspěvků
29. 10. 2015   #3
-
0
-

#2 arrayList

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


namespace hotel
{
    public partial class novyuziv_form : Form
    {
        public novyuziv_form()
        {
           
            InitializeComponent();
            
        }

            ArrayList meno = new ArrayList();
            ArrayList priezvisko = new ArrayList();
            ArrayList mesto = new ArrayList();
            ArrayList adresa = new ArrayList();
            ArrayList psc = new ArrayList();
            ArrayList tel = new ArrayList();
            ArrayList email = new ArrayList();
           

        public void novyuziv_form_Load(object sender, EventArgs e)
        {
        }

        public void create_button_Click(object sender, EventArgs e)
        {

            
            
            var meno_prem = meno_textbox.Text;
            var  priezvisko_prem = priezvisko_textbox.Text;
            var  mesto_prem = mesto_textbox.Text;
            var     adresa_prem = adresa_textbox.Text;
            var  psc_prem = psc_textbox.Text;
            var  tel_prem = tel_textbox.Text;
            var email_prem = email_textbox.Text;


            meno.Add(meno_prem);
            priezvisko.Add(priezvisko_prem);
            mesto.Add(mesto_prem);
            adresa.Add(adresa_prem);
            psc.Add(psc_prem);
            tel.Add(tel_prem);
            email.Add(email_prem);

            this.Close();


        }
    }
}

Nahlásit jako SPAM
IP: 89.173.3.–
arrayList
~ Anonymní uživatel
7 příspěvků
29. 10. 2015   #4
-
0
-

#3 arrayList

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

namespace hotel
{
    public partial class najstuziv_form : Form
    {
        public najstuziv_form()
        {
            InitializeComponent();
        }

        public void button1_Click(object sender, EventArgs e)
        {
            var meno = textBox1.Text;

            foreach (int i in novyuziv_form.meno)
                najdeny_listbox.Items.Add(i);
        }

        public void najdeny_listbox_SelectedIndexChanged(object sender, EventArgs e)
        {

        }
    }
}

Nahlásit jako SPAM
IP: 89.173.3.–
BDS+3
Věrný člen
29. 10. 2015   #5
-
+1
-
Zajímavé
Kit +

předpokládám, že "24line vo form3" je v posledním zdrojáku: foreach (int i in novyuziv_form.meno) tady mi není jasné jak jsi novyuziv_form tomu oknu předal..

Navíc celý ten kód mi přijde jako úplný paskvil, snad bych ty údaje o osobě dal do nějaké třídy..

něco jako  

class Osoba
{
 string meno;
 string priezvisko;
 ..
}

a pak tu třídu házel do Listu 

List<Osoba> = new List<Osoba>();

A ještě rada: spouštěj tu aplikaci v debug přes START,  a používej breakpointy, tak nejsnadněji najdeš chybu v kódu - běh programu můžeš krokovat.

Nahlásit jako SPAM
IP: 185.69.69.–
W11 :)
Hajrus0
Newbie
29. 10. 2015   #6
-
-1
-
Mimo téma
Kit -

#5 BDS
Řekni: Děkuji ti Microsofte! :)

Nahlásit jako SPAM
IP: 85.92.51.–
Kit+15
Guru
29. 10. 2015   #7
-
0
-

#4 arrayList
Nemáš tam ani jednoho člověka vcelku, ale každého máš rozstříhaného na 7 dílků a ty dílky jsi roztřídil do jednotlivých seznamů. Jako kdybys dal do jednoho hotelového pokoje hlavy, do druhého ruce, do třetího nohy... Těžko pak poznáš která hlava patří ke kterým rukám a nohám.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:207:e...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
arrayList
~ Anonymní uživatel
7 příspěvků
29. 10. 2015   #8
-
0
-

Ak spravim v button_click nieco taketo, vyhodi 3 rovnake chyby (protection level) na vsetky riadky kde je spomenute novyuziv_form.meno.

Nebude chyba niekde v modifikatoroch pristupu? hoci vsetko v zdrojaku je public, tak nechapem...

Kod sa samozrejme upravi tak aby osoby boli v jednej triede, viacmenej len skusam ako funguje Windows form pretoze doteraz som robil iba konzolove programy v C++. Ak vsetko pojde ako ma, kod skulturnim alebo spravim uplny novy... Hlavne ma teraz trapi preco sa neviem dostat k premennym v druhych triedach :(

Nahlásit jako SPAM
IP: 89.173.3.–
arrayList
~ Anonymní uživatel
7 příspěvků
29. 10. 2015   #9
-
0
-

   

        public void button1_Click(object sender, EventArgs e)
        {
            var meno = textBox1.Text;

            foreach (int i in novyuziv_form.meno) 
            {
                if (meno == novyuziv_form.meno[i])
                {
                    najdeny_listbox.Items.Add(novyuziv_form.meno[i]);
                }
            }
        }

Nahlásit jako SPAM
IP: 89.173.3.–
Kit+15
Guru
29. 10. 2015   #10
-
0
-

#8 arrayList
Ne všechny osoby v jedné třídě, ale jednu třídu pro definici jedné osoby. Z objektů této třídy pak teprve uděláš kolekci.

Nebudeš mít sedm seznamů vlastností, ale pouze jeden seznam osob.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:207:e...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
BDS+3
Věrný člen
29. 10. 2015   #11
-
+1
-
Zajímavé
Kit +

#9 arrayList

podívej se na tento návod:

"jak pracovat s Form-y" a raději začni od začátku.

Nahlásit jako SPAM
IP: 185.69.69.–
W11 :)
arrayList
~ Anonymní uživatel
7 příspěvků
29. 10. 2015   #12
-
0
-

Skusam dalsi program, zase to iste pre zmenu jednoduchsi. Rovnaka chyba vo form2 24 line.

namespace WindowsFormsApplication3
{
    public partial class Form1 : Form
    {

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Form2 form = new Form2();
            form.Show();
        }

        public void zapis_do_textboxu(string text)
        {
           textBox1.Text = text;
        }

    }
}

namespace WindowsFormsApplication3
{
    public partial class Form2 : Form
    {

        public Form2()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            
            Form1.zapis_do_textboxu(uloz_text());
            Close();
        }


        private string uloz_text()
        {
            string text = textBox1.Text;
            return text;
        }

    }
}

Nahlásit jako SPAM
IP: 89.173.3.–
BDS+3
Věrný člen
30. 10. 2015   #13
-
+1
-
Zajímavé
Kit +

#12 arrayList
pořád jsme u toho stejného, píšu to už po druhé: nepředáváš instanci Form1 do Form2. Kdyby ses podíval na to video, tak to nemůžeš udělat špatně.

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

        private void button1_Click(object sender, EventArgs e)
        {
            Form2 form = new Form2(this);
            form.Show();
        }

        public void zapis_do_textboxu(string text)
        {
            textBox1.Text = text;
        }
    }
    public partial class Form2 : Form
    {
        Form1 fm1;
        public Form2(Form1 fm)
        {
            InitializeComponent();
            fm1 = fm;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            fm1.zapis_do_textboxu(uloz_text());
            Close();
        }

        private string uloz_text()
        {
            return = textBox1.Text;
        }
    }

ps,

Form1.zapis_do_textboxu(uloz_text());

toto je naprostý nesmysl, to můžeš použít pouze pro statické funkce

Nahlásit jako SPAM
IP: 94.113.253.–
W11 :)
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, 48 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ý