Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von Sclot
Thema: Rekursiv Methode in Controls aufrufen - Problem mit Obfuscator
Am im Forum: GUI: Windows-Forms

Hallo :)

Ich bin grad dabei ein VFP konstrukt auf C# um zu schrieben.
Es geht darum alle Controls einer Form je nach zustand entweder zu disablen oder zu enablen.

in VFP sieht das ganze bei uns so aus:


local element
for each element IN  thisform.controls
	if pemstatus(element,"lock",5)
		element.lock(plwie)
	endif
next
^^ VFP... quickly und dirtyer :-)


Das ganze würde in etwa in C# wie folgt aussehen:


foreach (Control control in this.Controls)
{
    if (control.GetType().GetMethod("controls_lock") != null)
    {
        object[] parameter = new object[1]; 
        parameter[0] = sperren;
        control.GetType().GetMethod("controls_lock").Invoke(control, parameter);
    }
} 

Dies würde die Eigens definierte Methode "controls_lock" innerhalb der Controls aufrufen - falls vorhanden, welche sie dann je nach zustand disablen oder enablen würde.

Das problem ist, das dies mit Reflection gelöst ist.
Wenn ich mit jetzt einen Obfuscator nehme und die Assemby, welche daraus resultiert obfuskiere und sie dann ausführe, funktioniert das ganze Konstrukt nicht mehr, weil die Strings und methoden-namen auch mit unkenntlich gemacht werden.

Also muss irgendwie eine Möglichkeit her, die nicht mit Reflection arbeitet.
Meine Controls sind alle von den Basis-Controls abgeleitet, welche wiederum von "Controls" erben.
Ich hatte schon eine Idee über ExtensionMethods das "Controls" aufzubohren, aber das ist wohl nicht der elegante weg.

Ich steh mal wieder voll auf dem Schlauch.
Wie komme ich in der Schleife an die Methoden meiner Controls ohne die Schreibe für jedes Control neu bauen und aufrufen zu müssen? :-/

Thema: OleDBCommand aus DBF Datei
Am im Forum: Datentechnologien

mhm...
Ich denke, wenn du die DBC (also den Datebank-Container) der Tabellen öffnest, statt die DFB´s selbst zu öffnen, dann sollte es auch mit längeren Namen funktionieren.

Das selbe Problem solltest du dann auch mit den Spalten-Namen der tabellen haben, dir sind normalerweise auch begrenzt wenn du nur eine einzelne DBF ohne Container benutzt.

Thema: C# .NET Dll in unmanaged Code einbinden
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Unter dem Link http://www.west-wind.com/weblog/posts/104449.aspx hat der gute Rick Strahl mal C++ Code geschrieben mit dem man eine DLL bauen kann, die dann wiederum .NET DLL´s laden kann.

Das ganze benutze ich in VFP, damit ist es dann möglich .NET DLL´s in VFP zu benutzen ohne sie auf dem Rechner registrieren zu müssen.

Nachteile daran sind das man z.b. keine Usercontrols bauen kann, die man auf einer VFP Form benutzen kann, oder auch das diese C++ DLL nicht mehr mit dem .NET 4.0 FW zusammen arbeitet.
Aber ich denke das könnte man durch Änderung im Code lösen.

Auf jeden Fall ist VFP eine unmanaged Sprache und kann somit managed Code einbinden.
Und wen das mit VFP funktioniert, geht das sicherlich auch mit anderen unmanaged Sprachen :-)

Thema: Zwei Variablen sollen immer auf den selben String verweisen
Am im Forum: Rund um die Programmierung

Das ist mir irgendwie schon klar :-)

Ich meine mit Datenbank wechseln auch wirklich nur die Datenbank wechseln im sinne von Mehr-Mandanten-Fähigkeit - nicht im Sinne von Datenbank-Server wechseln.

Sry, wenn das so missverständlich rüber kam.

Thema: Zwei Variablen sollen immer auf den selben String verweisen
Am im Forum: Rund um die Programmierung

OK...

Der Ursprüngliche Sinn des ganzen war, in allen Instanziierten Klassen von einem Bestimmten Objekt (DB-Backend) einen String ändern zu können (den Connectionstring).

Jetzt hab ichs über einen Static String gelöst, der wie beschrieben in allen Objekten immer der selbe ist - praktisch das.

Jetzt stellt sich mir nur die Frage ob was Wechseln der Datenbank im laufenden Betrieb durch das Ändern des Conenctionstrings im DB-Backend Objekt wirklich so eine gute Idee ist oder nicht.

Ein "use DBNAME" vor jedem Query finde ich unschön...
Und ein "SELECT [feld1],[feldx] FROM DBNAME.tabelle" überall einzubauen find ich auch irgednwann unübersichtlich.
Im ConnectionString kann man praktischerweise gleich die Standard-Datenbank angeben, auf welcher man arbeiten möchte, so fallen die beiden oben beschriebenen lösungen weg.

Eure Meinung?

Thema: Zwei Variablen sollen immer auf den selben String verweisen
Am im Forum: Rund um die Programmierung

Ich brauch das aber als Referenz, also was tun? :-/

Thema: Zwei Variablen sollen immer auf den selben String verweisen
Am im Forum: Rund um die Programmierung

Nabend,

ich bezieh mich mal auf diesen Text:
http://www.guidetocsharp.de/Old/home/index.html?http%3A//www.guidetocsharp.de/Old/guide/guide9.html

Wenn ich jetzt aber folgendes mache:


string a = "db=db1";
string b = a;

a = "db=db2";
Console.WriteLine("a: "+a);
Console.WriteLine("b: "+b);

Dann bekomme ich:

a: db=db2
b: db=db1


Laut dem vielen geschriebenen Worten im oben geposteten Link, sollte doch jetzt in der Variable b auch der Inhalt von a stehen - oder nicht?

Jetzt bräuchte ich zum ersten mal sinnvoll den Inhalt von a auch in b und bin am verzweifeln, weil ichs nicht hin bekomm :-(

Thema: Lizenz/Abo-Verlängerung: VS2010 Prof + TFS2010 aus MSDN + SQL Express
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

mhm....
Wenn dem so ist, wäre das nett :-)

Ja, früher gab es den TFS mal in der Workgroup Edition, aber nur beim MSDN Ultimate, nicht beim Professional.

Aber früher hat der TFS auch mal mehr als 500 Euro gekostet.
So ändern sich die Dinge :-)

Thema: Lizenz/Abo-Verlängerung: VS2010 Prof + TFS2010 aus MSDN + SQL Express
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo,

Ich werd wohl früher oder später nicht drumherum kommen doch mal einen Lizenzberater in meiner nähe zu suchen (kennt einer einen netten im Raum Bremen? :) ), aber vll kann ja vorab jmd was dazu sagen.


Wir haben einst damals ein VS2005 Prof + MSDN Prof gekauft.
Hatten dann ein Upgrade-Recht auf Vs2008 sobald es raus kam.

Nun haben wir unser MSDN Abo verlängert und es ist VS2010 erschienen.
Ich habe nirgends eine Anmerkung dazu gefunden, ob ich nun auch dazu berechtigt bin das VS2010 aus dem MSDN Paket produktiv zu benutzen.
Ich weiss auch nicht ob die Verlängerung des MSDN Abos sich wirklich nur auf das MSDN Paket selbst bezieht oder ob es eben auch das VS betrifft.
Alles Kompliziert...


So das nächste.
In unserem neuen, verlängerten MSDN Paket haben wir nun auch einen TFS2010 drin.
Wie kann man den nun benutzen?

Wenn ich den TFS2010 mit SQL Express benutze, dann stehen mir nicht alle funktionen zur verfügung - darf man ihn dann trotzdem Produktiv einsetzen?

Den TFS2010 mit einem SQL Standard aus dem MSDN Paket produktiv zu benutzen, wird ja nicht wirklich im Sinne von MS sein.

Ich versteh das alles nicht.

Thema: Geöffnete Dateien anzeigen und schliessen
Am im Forum: Rund um die Programmierung

Das ist doch die Idee..
Einfach die Freigabe trennen, löschen und wieder verbinden...
Ist auf jeden Fall besser als den kompletten Netzwerk-Verkehr lahm zu legen.

Thema: Geöffnete Dateien anzeigen und schliessen
Am im Forum: Rund um die Programmierung

mhm...
Suchst du noch nen Job als Fachinformatiker?
Könntest hier auf jeden Fall ziemlich gut rein passen mit solchen Lösungen ;-)

Thema: Geöffnete Dateien anzeigen und schliessen
Am im Forum: Rund um die Programmierung

Ich habe folgenden Code um Herauszufinden, welche Dateien in meinen Freigaben geöffnet sind:


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 System.DirectoryServices;
using ActiveDs;

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

		private void button1_Click(object sender, EventArgs e)
		{
			using (DirectoryEntry container = new DirectoryEntry("WinNT://" + "127.0.0.1" + "/LanmanServer"))
			{
				IADsFileServiceOperations fso = container.NativeObject as IADsFileServiceOperations;
				if (fso != null)
				{

					IADsCollection resources = fso.Resources() as IADsCollection;

					foreach (IADsResource resource in resources)
					{
						try
						{
							Console.WriteLine(resource.Path+" / "+ resource.User + " / " + resource.LockCount.ToString());
							
						}
						catch (System.IO.FileNotFoundException ex)
						{
							// Fehler...
						}
					}
				}
			}
		}
	}
}



Als Ausgabe bekomme ich dann:

D:\public\ / Sven / 0
D:\public\ / Sven / 0
D:\public\test\test.dbc / Sven / 0
D:\public\test\test.DCT / Sven / 0
D:\public\test\test.DCX / Sven / 0
D:\public\test\test.dbf / Sven / 0
D:\public\test\test.CDX / Sven / 0

Hierbei handelt es sich um ein paar DBF Tabellen, welche von irgendjemanden über die Freigabe im Zugriff sein kann.

Jetzt brauche ich eine Möglichkeit diese Dateien zu schliessen.
Dabei dürfen sie auch ruhig kaputt gehen, da sie danach ehh gelöscht werden :-)

Das ganze soll programmatisch passieren, weil das irgendwann nachts geschehen soll.
Da hat sich noch keiner gefunden der sich dann die Computerverwaltung des Servers aufruft und die Dateien frei gibt ;-)

Ja...
Irgendwelche Ideen zum vorhaben?

Thema: MySQL 5.1 Default Value
Am im Forum: Datentechnologien

Frag das denjenigen, der die Alte Datenbank-Struktur sowei das passende Programm geschrieben hat.
Vielleicht war er einfach nur faul? ;)

Ich hab nur die Aufgabe das ding unter MySQL 5.1 lauffähig zu machen.
Wie du schon geschrieben hast: irgendwer muss immer dran glauben, der dann stirbt ;)

Thema: MySQL 5.1 Default Value
Am im Forum: Datentechnologien

Ah.. gefunden...
Das is der Strict Mode.. ist wohl das standard-Verhalten nach der Installation.


# Set the SQL mode to strict
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

Wenn man diesen nun auf folgendes setzt:

# Set the SQL mode to strict
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

Dann funktioniert mein oben beschriebenes Verhalten weiterhin.

Wenn Jetzt aber gesagt wird, das MSSQL (uns sich damit sicherlich auch andere Datenbanksysteme so verhalten), dann werde ich lieber meine Tabellen überarbeiten um irgendwo einen Standard zu verfolgen.

DANKE!

Thema: MySQL 5.1 Default Value
Am im Forum: Datentechnologien

Weil ich dann 6 Datenbanken mit je etwas über 300 Tabellen überarbeiten müsste :-(

Thema: MySQL 5.1 Default Value
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: MySQL 5.1

Guten Morgen,

Seit kurzem setze ich hier MySQL 5.1 ein und habe jetzt folgendes "Problem":

Hier mal eine Tabellenstruktur:


CREATE TABLE IF NOT EXISTS `ss_infos` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `projekt` varchar(20) NOT NULL,
  `ordner` varchar(100) NOT NULL,
  `datei` varchar(50) NOT NULL,
  `hist_id` varchar(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1;


Habe ich jetzt einen INSERT, mit dem nicht alle Spalten betroffen sind, bzw gefüllt werden, wie z.B. folgender:

INSERT INTO ss_infos SET projekt='1', order='/', datei='test.txt'

Hierbei wird die spalte "hist_id" nicht gefüllt - bringt er mir den Fehler das "hist_id" keinen DEFAULT Wert hat.
Ja - hat er nicht... soll er aber auch nicht...
Früher hat er da einfach nur einen leeren Eintrag gemacht (entspricht dann DEFAULT '')

Warum funktioniert sowas in MySQL 5.1 nun nicht mehr? :-(

Thema: Cassini - Webseite in Unterverzeichnis
Am im Forum: Web-Technologien

Hallo,

Das Problem am Cassini ist glaube ich, dass der Cassini für jeden Vitual Path einen eigenen Port auf machen will.
Dann müsste ich für jede Seite einen eigenen Port auf machen... das irgendwie unpraktisch :-(

Thema: Cassini - Webseite in Unterverzeichnis
Am im Forum: Web-Technologien

Ah...
Neue erkenntnis!

Wenn ich den bin Ordner der Seite in "F:\www\" kopiere, dann kann ich die seite auch im Unterverzeichnis aufrufen.

Und wie kann man das jetzt ändern? :-/

Thema: Cassini - Webseite in Unterverzeichnis
Am im Forum: Web-Technologien

Hallo,

ich benutze hier Cassini für die anzeige von einer mini ASP.NET Seite.
Zusätzlich dazu soll Cassini einen Webservice bereitstellen.

Cassini ist so Konfiguriert das der Virtual Path "/" auf "F:\www\" zeigt.
Momentan liegt meine ASP.NET Seite noch in "/" also dementsprechend "F:\www\" drin.
Damit funktioniert auch alles wie es soll :-)

Wenn ich diese Seite nun aber in ein Unterverzeichnis schiebe, so dass sie in "F:\www\webseite\" liegt und dann auch über "http://127.0.0.1/webseite/default.aspx" aufgerufen werden müsste, kommt folgender Fehler:


Serverfehler in der Anwendung /.
Parserfehler
Beschreibung: Fehler beim Verarbeiten einer Resource, die für diese Anforderung erforderlich ist. Überprüfen Sie folgende Fehlerinformationen und ändern Sie die Quelldatei entsprechend.

Parserfehlermeldung: Der Typ "webseite._Default" konnte nicht geladen werden.

Quellfehler:

Zeile 1:  <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="webseite._Default" %>
Zeile 2:  
Zeile 3:  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


Quelldatei: /webseite/default.aspx    Zeile: 1 


Warum findet er sein Zeug dann nicht mehr?
Was kann man dagegen tun?

Danke!

Thema: Aktualisierungen in der Datenbank mitbekommen
Am im Forum: Datentechnologien

Nur der Vollständigkeit wegen...

Wir haben uns bzgl. dieses Problems eine Lösugn einfallen lassen, die via Broadcast ein in string ungewandeltes Enum versendet.
Auf das Broadcast-Paket reagiert jeder Rechner im netz, so das alle eine Aktualisierung mitbekommen.

Schlicht und einfach - funktioniert gut :-)

Thema: CSharp Programme in VB6 nutzen
Am im Forum: Rund um die Programmierung

Guckst du da: VBRun - Interop Forms Toolkit, Visual Basic 6.0 :-)

Thema: Warum in DLL´s Programmieren?
Am im Forum: Rund um die Programmierung

Zitat Kollege:

Zitat
08:44 MD: falls du ma langeweile hast... schau doch mal, ob wir irgendwo eine diskussion mit ergebnis finden, warum wir lieber DLL's ausliefern sollten, anstatt eine EXE


Das "Problem" ist folgendes:
Bisher haben wir unsere Software immer nur in EINER einzugen EXE ausgeliefert.
Dies hat natürlich gewisse Nachteile, wie schlechtere wiederverwendbarkeit...
Einige Kollegen sehen nun nicht ein warum man in .NET in DLL´s Programmieren sollte, wenn man es schon angeboten bekommt.

Ich persönlich find diese ganze Disskussion grenzwertig, weil ichs einfach gewohnt bin in DLL´s zu programmieren.
Meine Kollegen allerdings sind es gewohnt in einer einizigen EXE zu Programmieren, was wohl z.B. den nachteil der wiederverwendbarkeit zum vorteil des schutzes bietet, da in der EXE keine methoden public sein müssen und somit auch nicht von aussen aufgerufen werden können.

Der größte Nachteil wird wohl wegen der versionierung gesehen.
Wieder ein Zitat:
Zitat
11:08 MD: z.b. hat marv die exe kompiliert
11:08 MD: und dann gedacht, die dll's werden gleich mit erstellt
11:08 MD: war aba nit so
11:08 MD: und versionsabgleich ist dann schwierig
11:08 MD: was hat der client ?
11:08 MD: was haben wir ?
11:08 MD: was hat der server ? etc
11:09 MD: gibt ne menge probleme
11:09 MD: die man erstmal berücksichtigen und programmieren müsste
11:09 MD: was wir bei der EXE eben nicht haben

Zu dem thema "dll wird nicht bei exe-kompilat mit kompiliert" denke ich ist das eine einstellungssache des VS oder von einem selbst... immerhin hat man folgende Möglichkeiten:
- einfach die ganze Projektmappe durchkompilieren, dann werden die DLL´s auch neu erstellt
- im VS einstellen, das beim ausführen die DLL-Mappen mit erstellt werden
- ein Setup-Projekt anlegen und dieses vor der auslieferung erstellen, so wird uch die gesamte Projektmappe noch mal durch kompiliert
- über einen Buildserver gehen und dem die Nuild überlassen, der macht das schon richtig :-)

Zum Thema versionierung kann ich nur sagen:
Wenn man das ganze Projekt durchkompiliert, dann hat man jeweils immer die Aktuelle DLL auf der Platte. Diese dann auch im Setup oder im Update, je nach dem.

Kann man trotz dem etwas dafür tun, das man keine Probleme mit veralteten DLL´s bekommt, die dann auf einmal, warum auch immer benutzt werden?

Ich geh jetzt mal googeln.. vielleicht find ich was schönes zum thema :-)
Ich würde euch trotzdem bitten eure Erfahrungen aufzuschreiben.
Danke!

Thema: Suche Reporting Tool
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Und wie war das mit der Vorschau?
Diese RDL Reports funktionierten doch nicht mit dem Report-Viewer Control Vom Visual Studio... oder bin ich grad wirr?

Thema: Dienst läuft nicht unter Windows Server 2008R2
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Verwendest du eine 32Bit DLL in dem Dienst?

Thema: Dienst läuft nicht unter Windows Server 2008R2
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Könnte unter anderem an dem benutzer liegen, für den der Dienst installiert wird.

Was steht denn bei: serviceProcessInstaller.Account = ???

Ich hatte mal Probleme mit ServiceAccount.LocalService, da es diesen unter Windows2000 nicht gibt.

Thema: Fragen Bezüglich Weiterbildung in der Freizeit
Am im Forum: Smalltalk

Mhm...
Ins kalte Wasser geworfen werden und ein Modul unter realen Bedingungen zu bauen, in der Arbeitszeit - hört sich auf dem ersten Blick nicht schlecht an.

Dann muss ich wohl mal was finden, was nicht zu sehr anstrengt, erste erfolge vermittelt, halbwegs einfach umzusetzen ist und zudem noch sinnvoll ist.

Danke erstmal dafür :-)

Thema: Aktualisierungen in der Datenbank mitbekommen
Am im Forum: Datentechnologien

Für eine Art Ticket-System benutzen wir hier ein DataGridView in dem wir die Tickets auflisten.
Die Daten kommen via Select abfrage aus einer MySQL Datenbank.

Jetzt geht es um das Thema Aktualisieren.
Das Problem ist: Wenn jmd anders jetzt ein neues Ticket einträgt, dann wird es bei mir nicht angezeigt, bevor ich die Daten nicht aktualisiere.

Wann ist es denn eurer Meinung nach Sinnvoll diese Daten zu aktualisieren?
Über einen Timer in einem bestimmten Intervall?
Immer beim Minimize/Maximize/Resize des Formulars?
Oder gibt es ein Event, den man von der Datenbank abfragen kann, das ein neuer Eintrag Hinzugefügt wurde auf dem ich dann reagieren kann und das Grid aktualisieren kann?

Thema: Fragen Bezüglich Weiterbildung in der Freizeit
Am im Forum: Smalltalk

Sry, mir fiel hierfür kein besserer Titel ein.

Wir (8 Mitarbeiter in einem kleinen Softwarehaus) stehen nun immer noch vor dem umstieg von Visual Foxpro auf C#.

Das es C# wird, dafür haben wir uns nun schon entschieden.
Unseren ersten Workshop für C# haben wir auch schon bezahlt bekommen.
Allerdings arbeitet bis heute noch niemand Produktiv damit.
Manche Kollegen haben nicht mal das Visual Studio installiert.

Das Problem ist nach wie vor das die Kollegen nie ruhe und zeit haben sich damit auseinander zu setzen - und da sie schon etwas älter sind, denke ich brauchen die dafür auch mal wirklich etwas ruhe und zeit.

Nun der gedanke: wenn wir das schon nicht in der Arbeitszeit schaffen, dann müsste es doch irgendwie ausserhalb der Arbeitszeit zu schaffen sein.
Das Problem hierbei ist, das niemand gern seine Freizeit dafür opfert um irgendwas neues zu lernen (ok, bei usn ist das was anderes, aber bei alten VFP Entwicklern denen ihr Werkzeug weggenommen wurde sieht das schon anders aus).

Da ich auch nur ein Mitarbeiter bin, mir es aber irgendwie mehr am Herzen liegt von VFP weg zu kommen und endlich mal C# einzusetzen bevor eine neue Technologie den Markt überschwemmt habe ich folgende Frage:

Was kann der ARBEITGEBER denn dafür tun das wir uns hier mal nach Feierabend eine Stunde oder nen halben Tag am Wochenende hinsetzen um hier mal weiter zu kommen?
Spontan würden mir da nur bezahlte Überstunden einfallen... aber ich glaub davon hat jeder schon genug...

Ich brauch also quasi irgendeine Motivation für die Frustrierten Leute hier....

Thema: Pflichtfelder in GUI prüfen
Am im Forum: Rund um die Programmierung

OK, machen wir es WinForm Spezifisch, da ich hier wirklich eien Winform Anwendung habe in der ich es brauche :-)

Thema: Pflichtfelder in GUI prüfen
Am im Forum: Rund um die Programmierung

Guten Abend,

wie würdet ihr Pflichtfelder in einer GUI lösen?

Gedacht habe ich mir folgendes:
Eine Liste vom typ Objekt, wo ich alle Pflichtfelder hinzufüge.
Pflichtfelder können nun von mehreren typen sein, z.B. TextBox, MaskedTextBox, CheckBox, darum die liste vom Typ Objekt.
Irgendwann gibt es dann eine Methode pruefe_pflichtfelder() oder so, in welcher ich die liste in einer forech schleife durchgehe, mit GetType() nach schaue von welchem Typ das Objekt in der Liste ist und dementsprechend dann die spezielle Prüfung baue.
Für eine TextBox muss dann geprüft werden ob .Text leer ist.
Für eine Checkbox muss geprüft werden ob sie checked ist.
Für eine MaskedTextBox muss geprüft werden ob die Maske komplett ausgefüllt wurde.


Ja - so in etwa dachte ich mir das.
Wenn ich mir das aber durchlese, klingt das in meinen Augen irgednwie sehr frickelig :-(

Kann mal jemand was dazu sagen?