Autor Beitrag
Soc
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 49



BeitragVerfasst: Mo 05.10.09 12:54 
Hallo Zusammen,

ich würde grne in ein Windows Applikation das setzen von Eigenschaften auslagern.
Dazu habe ich eine Klassenbibliothek erstellt, die wie folgt aussieht:

ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Bckup
{
    public class AreaFucus
    {
        public void SetFocus(bool System, bool Logs, bool Profile)
        {
            if (System)
            {
                tstProfEdit.Enabled = false;
                tstChangeSchedule.Enabled = false;
                tstCopyProfile.Enabled = false;
                tstProfDel.Enabled = false;
                tstProfView.Enabled = false;
                tstProfBackup.Enabled = false;
                tstProfNew.Enabled = false;
                gbxProfButton.Enabled = false;
                mstProfiles.Enabled = false;
                gbxProf.BackColor = System.Drawing.SystemColors.Control;

                gbxLog.Enabled = false;
                mstLogs.Enabled = false;
                tstLogView.Enabled = false;
                tstLogDel.Enabled = false;
                gbxLogs.BackColor = System.Drawing.SystemColors.Control;

                gbxSet.Enabled = true;
                mstConfig.Enabled = true;
                tstConfigEdit.Enabled = true;
                gbxSystem.BackColor = System.Drawing.SystemColors.InactiveCaption;
            }
...


Leider bekomme ich folgende Meldung:

Der Name "tstProfEdit" ist im aktuellen Kontext nicht vorhanden.

Diese erscheint für jedes Steuerelement.

Es fehlt mir wahrscheinlich eine Reference, aber welche ?

Danke für die Hilfe.

Gruß

Soc

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt
Nemag
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 132
Erhaltene Danke: 2



BeitragVerfasst: Mo 05.10.09 13:09 
Woher soll deine Klasse auch die Steuerelemente kennen, die du in deiner Form erzeugt hast?

Wie du schon sagst fehlt dir eine bzw. vielmehr alle Referenzen auf die Steuerelemente. Kann es sein das dir auch ein paar Grundlagen fehlen?

Warum willst du denn eine eigene Klasse machen die dir die Eigenschaften setzt und nicht eine Methode innerhalb der Formklasse? Wenn müsstest deiner Klasse dann auch alle Steuerelement bekannt machen. (Was natürlich so wie ich das sehe großer Humbug ist!)
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Mo 05.10.09 13:14 
Hallo,

Code ist bitte schön als solcher zu markieren, damit er lesbar ist. Dazu bitte:
* deinen Beitrag mit dem Schere-Button neu öffnen
* Text markieren
* "Bereiche" anklicken, C# auswählen, Plus-Button drücken
* Beitrag speichern
Meinst du nicht auch, dass es so viel besser zu lesen ist?

Die Frage kann von uns nicht beantwortet werden. Wir wissen nicht, in welcher Quelldatei die Variable tstProfEdit definiert ist. Ich vermute, du hast einfach Quelldateien getrennt, die vorher mit partial class zusammengehörten, und nicht auf den verwendeten Namespace geachtet. Jetzt wird ein Objekt mit diesem Namen in einer anderen Quelldatei (vielleicht sogar DLL) erzeugt und soll hier einfach benutzt werden. Das geht in der OOP nicht!

Gruß Jürgen
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mo 05.10.09 14:41 
user profile iconJüTho hat folgendes geschrieben Zum zitierten Posting springen:
Code ist bitte schön als solcher zu markieren, damit er lesbar ist. Dazu bitte:
* deinen Beitrag mit dem Schere-Button neu öffnen
* Text markieren
* "Bereiche" anklicken, C# auswählen, Plus-Button drücken
* Beitrag speichern
Meinst du nicht auch, dass es so viel besser zu lesen ist?

Mit vier Postings muss man wohl noch nicht alle Funktionen des Forums kennen. Das ist bitte beim Tonfall solcher Hinweise zu beachten ;-)

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Soc Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 49



BeitragVerfasst: Mo 05.10.09 14:57 
user profile iconNemag hat folgendes geschrieben Zum zitierten Posting springen:
Woher soll deine Klasse auch die Steuerelemente kennen, die du in deiner Form erzeugt hast?

Wie du schon sagst fehlt dir eine bzw. vielmehr alle Referenzen auf die Steuerelemente. Kann es sein das dir auch ein paar Grundlagen fehlen?

Warum willst du denn eine eigene Klasse machen die dir die Eigenschaften setzt und nicht eine Methode innerhalb der Formklasse? Wenn müsstest deiner Klasse dann auch alle Steuerelement bekannt machen. (Was natürlich so wie ich das sehe großer Humbug ist!)


Wie schon Richtig erkannt wurde, beginne ich gerade mit C# und auch mit OOP.
Bin aber trotzdem dankbar das überhaupt auf meine Anfragen jetzt geantwortet wird.
(Obwohl ich über die Art und Weise etwas verwundert bin - da ich angenommen habe, dass man hier auch "dumme Fragen" eines Anfängers stellen kann...)

Nun zum Problem.

Ich habe ein Formular erstellt in dem die ganzen Steuerelemente definiert sind. Ich würde gerne alle meine Methoden auslagern in eine DLL.
Ich habe die Methode bisher im eigentlichen cs gehabt und es geht alles soweit.

Wie ich aus der Antwort entnehme, ist es nicht sinnvoll diese in eine DLL zu packen, richtig ?

Gruß

Soc
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mo 05.10.09 15:31 
Zitat:
Wie ich aus der Antwort entnehme, ist es nicht sinnvoll diese in eine DLL zu packen, richtig ?

Jein.
Wenn sich die Methoden auf konkrete Controls auf deiner Form beziehen dann machen sie ohne diese Form ja keinen Sinn(mal abgesehen davon das das auch nicht so einfach funktioniert wie du festgestellt hast). Solche Funktionen gehören sicherlich zur Form Klasse oder zumindest logisch in die Nähe der Form Klasse. Dein gezeigtes Beispiel zum Beispiel sollte man auf der Form belassen.

Wenn du aber Methoden hast die so allgemein sind das sie unabhängig von der Form noch Sinn machen oder wenn diese Methoden zumindest so umformbar sind das man konkret betroffenen Controls als Parameter übergeben kann macht es durchaus Sinn diese auszulagern und damit wiederverwendbar zu machen.
Soc Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 49



BeitragVerfasst: Mo 05.10.09 17:13 
[quote="user profile iconRalf Jansen"(580409)]
Zitat:

Wenn du aber Methoden hast die so allgemein sind das sie unabhängig von der Form noch Sinn machen oder wenn diese Methoden zumindest so umformbar sind das man konkret betroffenen Controls als Parameter übergeben kann macht es durchaus Sinn diese auszulagern und damit wiederverwendbar zu machen.


Danke für die Antwort.
Ich die Class nun in ein eigenes File gestellt und die Class mit Partial definiert.
Somit habe ich sie aus den eigentlichen Code mal raus.

Danke.

Gruss

Soc