Globális változó hiba,elérési út átadás mellékformra

Globális változó hiba,elérési út átadás mellékformra
2017-11-13T00:08:14+01:00
2017-11-17T01:16:50+01:00
2022-12-04T21:55:44+01:00
makittib
Sziasztok !

Kezdőként olyanban akadtam el, hogy főformon van egy gomb, amivel egy txt-t lehet megnyitni és egy új ablakban (mellékform) egy richTextBox-ban jeleníti meg a tartalmát.
Globális változó hozzáadásával sikerült átadnom az útvonalat, de a főform tervező nézeténél hiba lett, nem jelenik meg.
Globális változót így csináltam:

static class GlobalClass { private static string utvonal = ""; public static string GlobalVar { get { return utvonal; } set { utvonal = value; } }
Hiba leírása:
Warning 1 The class FoForm can be designed, but is not the first class in the file. Visual Studio requires that designers use the first class in the file. Move the class code so that it is the first class in the file and try loading the designer again.

A FoForm designer.cs -ből kikommentelem a
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
sort (csak ekkor fordítható a program) tökéletesen működik a program.

Bármiféle segítséget szívesen fogadok, makittib.
Mutasd a teljes hozzászólást!
Megpróbálhatod másképp is.
Solution explorerben jobb egérkattintás a projectre, add és class. Itt létrehozol egy üres osztályt ami automatikusan megkapja az általad használt namespace-t bemásolod Global class kódsorait majd F5 vagy rebuild.
Mutasd a teljes hozzászólást!

  • Szia!

    Értelmezted a hibaüzenetet?

    Az a probléma, hogy a VS designer csak akkor tudja helyesen kezelni a form-okat, ha a hozzá tartozó forrásban a form-hoz tartozó class van "legfelül". Javaslom, hogy nyisd meg a designer-t (nem baj, ha hibásan jelenik meg), majd jobb-click "view code" vagy F7 és a megjelenő forrásban mozgass minden class-t lejjebb, ami a form class előtt van. Ha ez megvan, akkor zárd be a designer-t és rebuild...
    Mutasd a teljes hozzászólást!
  • Mike_XTP próbáltam, amit leírtál lejjebb mozdítani a globális változó részt (amit a témanyitásnál írtam, mert az volt legelől), de sajnos így nem fordul le a program, ilyen hiba lett:

    error CS0103: The name 'GlobalClass' does not exist in the current context

    Compile complete -- 1 errors, 0 warnings
    ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

    Azaz úgy látom hogy a mellékform nem látja a GlobalClass-t.
    Mutasd a teljes hozzászólást!
  • A hibaüzenet alapján jól látod. Meg kell nézned, hogy milyen namespace-ben van a GlobalClass osztályod és ezt a namespace nevet hozzá kell adnod annak az osztálynak a using block-jához, ahol ez a hibaüzenet jön.
    Mutasd a teljes hozzászólást!
  • Megpróbálhatod másképp is.
    Solution explorerben jobb egérkattintás a projectre, add és class. Itt létrehozol egy üres osztályt ami automatikusan megkapja az általad használt namespace-t bemásolod Global class kódsorait majd F5 vagy rebuild.
    Mutasd a teljes hozzászólást!
  • Mike_XTP az utóbbi új class-t próbáltam, úgy néz ki úgy jó lesz, de tesztelnem kell.
    Nagyon köszönöm, makittib.
    Mutasd a teljes hozzászólást!
  • Mike_XTP és Regex köszönöm a segítséget, nekem az új class volt az egyszerűbb.

    Más számára segítségként bemásolom a kódot:

    namespace Program { class GlobalClass { private static string utvonal = ""; public static string GlobalVar { get { return utvonal; } set { utvonal = value; } } } }
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd