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 Atomroflman
Thema: Remote Debug mit No Authentication aus VS 2010 starten
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Auf die Gefahr hin jetzt als Idiot da zu stehen. Frage ich doch noch mal nach.

Ich habe auf meinen Server den Remote Debugger gestartet. Der Debugger läuft auf 32Bit weil Target Platform 32Bit.
Dann habe ich die Einstellungen im Remote Debugger auf "Keine Authentifizierung" gestellt und in meinen Visual Studio folgendes konfiguriert:

Start external Program: D:\Local\Path\To\Application.exe
Working Directory: \\Server\Path\To\ (Path ist ein Netzwerk share)
Use Remote Machine: Server

Wenn ich jetzt F5 drücke bekomme ich folgende Meldung:

Fehler
---------------------------
Microsoft Visual Studio
---------------------------
Error while trying to run project: Unable to start debugging.

Anmeldung fehlgeschlagen: unbekannter Benutzername oder falsches Kennwort.

Warum?
Alle Benutzer debuggen ermöglichen (an oder aus versucht)
Authentifizierung ist aus

Und wenn ich Attach to Process mache funktioniert es. Nur dann bin ich lange an dem Teil vorbei den ich debuggen möchte. X(

Woran kann es noch liegen dass sich das Programm nicht aus dem VS starten lässt?

Danke schon mal im vorraus.

Thema: Server im lokalen Netz suchen
Am im Forum: Netzwerktechnologien

Hallo zusammen,

ich versuche grade mir eine Funktion zu basteln, die mir eine Liste an Servern zurück gibt, die im lokalen Netzwerk zur Verfügung stehen, auf denen ein bestimmter Dienst läuft.

Die Funktionsweise soll so ähnlich sein wie die Suche bei einem LAN-Spiel.

Gibt es zu sowas Tutorials, wie so was prinzipiell funktioniert?

Danke schon mal.

Thema: Dateien eines Prozesses suchen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo Zusammen,

ich bin auf der Suche nach einem Weg der mir die Dateien anzeigt die ein bestimmter Prozessgrade liest und schreibt.
Oder besser noch bescheid sagt wenn sich die Liste ändert.

Gibt es so was in fertig?

Mein kleines Testprojekt sieht wie folgt aus:


        private void Form1_Load(object sender, EventArgs e)
        {
            Process[] runnig = Process.GetProcesses();
            foreach (Process p in runnig)
            {
                AdvProc a = new AdvProc(p);
                comboBox1.Items.Add(a);
            }

        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                if (((AdvProc)comboBox1.SelectedItem).Proc.HasExited)
                    comboBox1.Items.Remove(comboBox1.SelectedItem);
                else
                {
                    AdvProc p = ((AdvProc)comboBox1.SelectedItem);
                    this.Text = p.Proc.HandleCount.ToString();
                    // hier sollen die Dateien gelesen werden...
                    foreach (ProcessModule m in p.Proc.Modules)
                    {
                        listView1.Items.Add(m.FileName);
                    }
                }
            }
            catch
            {
                comboBox1.Items.Remove(comboBox1.SelectedItem);
            }
        }
        // damit die Combobox was richtiges anzeigt...
        public class AdvProc
        {
            public Process Proc;
            public AdvProc(Process p)
            {
                Proc = p;
            }

            public override string ToString()
            {
                return Proc.ProcessName;
            }
        }

Wobei ich jetzt nach den Dateipfaden oder Dateihandles suche die der ausgewählte Prozess hat.

Process.Modules gibt leider nur die ganzen geladenen DLLs und das EXE File zurück.
Ich suche aber eher nach dem txt File welces ich im editor geladen habe.

Danke schon mal im Voraus.

Thema: Crystal Report - Zeilenumbruch im String wird ignoriert
Am im Forum: Rund um die Programmierung

Also dass mit der 2ten Tabelle klingt doch schon mal nach einem vernünftigen Plan... Also quasi die Texte als Variablen übergeben ist wohl am einfachsten...
Denn kannst du die Felder einfach in den Berichtsfuß ziehen...

Formeln kannst du nur auf Berichtsvariablen anwenden, nicht auf TextObjekte...

Oder gibt es einen Bestimmten Grund warum du das Template des Berichtes ändern willst?
Die TextObjekte sind die Festen Texte die du im Crystal Editor einfügst...
Wenn du das Problem mit den Zeilenumbrüchen nicht gelöst bekommst, kannst du vllt. noch die TextObjekte klonen und die Texte untereinander in verschiedene TextObjekte schreiben...

Thema: Crystal Reports laden aus DB?
Am im Forum: Rund um die Programmierung

Das Problem dabei ist dass es auf den Festplatten der Kundensysteme oft Zugriffs- und BBerechtigungsprobleme geben soll.

Deswegen soll nach möglichkeit nichts auf die lokale Festplatte geschrieben werden. Also auch keine TempFiles.

Ich hatte zeitweilig mit dem Gedanken gespielt einfach ein RAM-Drive für die Laufzeit zu mappen wo das Temp Zeug hinfällt. Nur doof dass man dazu auch mehr Rechte braucht als ich dort haben werde. :(

Thema: Crystal Reports laden aus DB?
Am im Forum: Rund um die Programmierung

Hallo zusammen,

ich versuche grade eine Mimik zu bauen, die Berichte aus der DB laden kann.
Ich bin auch schon so weit dass ich die Berichte hoch und runterladen kann.

Ich habe allerdings jetzt das Problem, dass die Berichte nicht auf die Festplatte geschrieben werden sollen. Also muss ich sie irgendwie aus einem MemoryStream in ein ReportDocument umwandeln.

Hat jemand so was schon mal gemacht oder ne Idee wie das funktionieren könnte?


// Schnipsel: So hab ich mir das vorgestellt.
// Nur leider nimmt Load keine Binärdaten an sondern nur Pfade
byte[] ReportData = GetReportFromDB(ID);

using (ReportDocument Doc = new ReportDocument())
{
   Doc.Load(new MemoryStream(ReportData));
}
Doc.PrintToPrinter(0, true, 1, 1);

Grüße.

Thema: Unbekannte Variablen auswerten
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Kann mir jemand sagen wie ich Variablen auswerte, bei denen ich vorher noch nicht weiss wie sie heissen...

Also:


long MyVar = 1337;
object Result = GibMirWert("MyVar");
return Result; // Enthält 1337

Thema: DESCRIBE und SELECT verbinden
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: mysql

Hi Leute,

ich suche nach einer möglichkeit die Spaltendefinition eines SELECT-Statements zu erfragen.


Describe (SELECT * FROM Sys_Users)
Ergebnis:

DESCRIBE (SELECT * FROM Sys_Users);
+----+-------------+-----------+------+---------------+------+---------+------+------+-------+
| id | select_type | table     | type | possible_keys | key  | key_len | ref  | rows | Extra |
+----+-------------+-----------+------+---------------+------+---------+------+------+-------+
|  1 | SIMPLE      | Sys_Users | ALL  | NULL          | NULL | NULL    | NULL |    1 |       | 
+----+-------------+-----------+------+---------------+------+---------+------+------+-------+

ich suche allerdings nach einem ergebnis welches die ausgegebenen Spalten des SELECTs wieder gibt
also eher so:

+----------+------------------+------+-----+---------+----------------+
| Field    | Type             | Null | Key | Default | Extra          |
+----------+------------------+------+-----+---------+----------------+
| ID       | int(10) unsigned | NO   | PRI | NULL    | auto_increment | 
| Name     | varchar(45)      | NO   | UNI | NULL    |                | 
| Icon     | int(10) unsigned | YES  | MUL | NULL    |                | 
| PersonID | int(10) unsigned | YES  | MUL | NULL    |                | 
+----------+------------------+------+-----+---------+----------------+

Ist euch eine Möglichkeit bekannt wie man das umsetzen kann??

EDIT: Mir würden auch die ersten beiden Spalten der Ausgabe reichen.

Danke!

Thema: Generierung eines Reports mit Crystal
Am im Forum: Rund um die Programmierung

Ich versuche aus einer DataTable einen Report zu erstellen, der nur die Eigabevariablen kennt. Die Formatierung ist dabei unwichtig.

Allerdings habe ich noch keinen Ansatz wie ich das machen muss.

Hat jemand schon mal was ähnliches gemacht?

Thema: Modern MessageBoxes/ProgressBoxes
Am im Forum: .NET-Komponenten und C#-Snippets

Ich will den Thread auch noch ein mal ausgraben weil ich auch gerne auf die MessageBoxen zurück greifen würde...

Allerdings nur wenn ich daran auch etwas anpassen könnte...
Wird es die Sourcen zu dem nicht VB Projekt geben?

Wo bekommt man denn die Taskdialoge von Vista her?

Thema: Trigger mir die Tabelle
Am im Forum: Datentechnologien

Das Programm ist so angelegt dass es beim selektieren alle Zeilen ignoriert die das Lock auf 3 gesetzt haben. Das tut es in jeder Tabelle. Ich habe nur versucht das setzen aus dem Programm in die DB zu verlagern.

Die Locked Zeilen können über einen Schalter wieder angezeigt werden. Wenn der User nun merkt, dass er eine falsche Zeile gelöscht hat kann er sie wieder holen, ausser sie wurde bereits überschrieben.

Thema: Trigger mir die Tabelle
Am im Forum: Datentechnologien

Ja ich habe das benutzt und nen PK hinzugefügt.

Die Spalten sind immer vorhanden, da auch diese automatisch angelegt werden.

Ich habe das Problem auch schon gelöst. Es hing an einem Flag was gesetzt werden muss, damit der Trigger den Fehler nicht schmeisst der gecatcht werden soll...

SET XACT_ABORT OFF;

Den Rest des Codes erspar ich eich mal.

Ziel des ganzen war dass ich an jeder Zeile sehen kann wer / wann zuletzt an daran geändert hat.

Thema: Trigger mir die Tabelle
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: MSSQL 2008 Express

Hallo ihrs,

ich habe mir einen Datenbank-Trigger angelgt, der automatisch Trigger in einer neuen Tabelle anlegen soll falls diese nicht vorhanden sind.
Allerdings kann ich nun Tabellen nicht mehr ändern weil ich auf einen Fehler laufe, da der Name des Triggers schon vergeben ist.


CREATE TRIGGER [Create_DefaultTriggers]
   ON  DATABASE 
   AFTER CREATE_TABLE
AS 
BEGIN
	DECLARE @data XML;
	SET @data = EVENTDATA();

	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	DECLARE @TableName varchar(100), @Statement varchar(1000);
	SET @TableName = EVENTDATA().value
        ('(/EVENT_INSTANCE/ObjectName)[1]','varchar(100)');
    -- Insert statements for trigger here
	IF NOT (@TableName LIKE 'System%')
	begin
		BEGIN TRY
			SET @Statement = 
				' CREATE TRIGGER [dbo].[Delete' + @TableName + ']' +
				' ON  [dbo].[' + @TableName + ']' + 
				' INSTEAD OF DELETE AS' + 
				' BEGIN' +
				' SET NOCOUNT ON;' +
				' DELETE FROM [dbo].[' + @TableName + '] WHERE ID in (SELECT ID FROM DELETED WHERE Lock = 3);' +
				' UPDATE [dbo].[' + @TableName + '] SET Lock = 3 WHERE ID in (SELECT ID FROM DELETED);'+
				' END';

			EXECUTE (@Statement) AS LOGIN = 'sa';
			
			SET @Statement =
				' CREATE TRIGGER [dbo].[Update' + @TableName + ']' +
				' ON  [dbo].[' + @TableName + ']' + 
				' AFTER INSERT,UPDATE' +
				' AS' + 
				' BEGIN' +
					' SET NOCOUNT ON;' +
					' UPDATE [dbo].[' + @TableName + '] SET LastChangeOn = GetDate(), LastChangeBy = user_name() WHERE ID in (SELECT ID FROM Inserted);' +
				' END';
			
			EXECUTE (@Statement) AS LOGIN = 'sa';
		
		END TRY
		BEGIN CATCH
		
		END CATCH
	end
END

Ich hätte ja erwartet dass die Statements nur bei Create Ausgeführt werden und dass die Trigger mit den Tabellen Gelöscht werden.

Thema: Update innerhalb einer Funktion?
Am im Forum: Datentechnologien

Oh mein Gott, bin ich stupide...

einfach an jede Tabelle eine Spalte mit datentyp Timestamp angehängt, tut genau das was ich wollte...

Dennoch danke für die Mühe... ;)

Thema: Update innerhalb einer Funktion?
Am im Forum: Datentechnologien

Eigentlich suche ich nach einer Möglichkeit einen tabellenübergreifenden Zähler zu bauen.
Am liebsten wäre es mir halt wenn das in einer Funktion passiert, die quasi mitzählt wie oft sie aufgerufen wurde...

Thema: Update innerhalb einer Funktion?
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: MSSQL 2008 EXPRESS

Hallo Ihrs,

ich möchte mir eine Funktion in SQL bauen die einen Wert aus einer Tabelle holt, den Wert hoch zählt und den neuen Wert an selbiger Stelle zurück schreibt.

Dabei bin ich auf folgendes gekommen:


CREATE FUNCTION GetNextRowId()
returns bigint
as 
begin 
	declare @lastval bigint 
	set @lastval = (select RowVal from dbo.testtab) 
	if @lastval is null set @lastval = 1
	set @lastval = @lastval + 1
	update dbo.SupplyRowId set RowId = @lastval
	return @lastval
end

dazu sagt das Management Studio:

Meldung 443, Ebene 16, Status 15, Prozedur GetNextRowId, Zeile 15
Ungültige Verwendung eines 'UPDATE'-Operators mit Nebenwirkungen innerhalb einer Funktion.


Darf ich in Funktionen prinzipiell kein update machen?

Thema: MDI-Parent mitteilen wenn Childs was tun
Am im Forum: GUI: Windows-Forms

Ich habe gerade heraus gefunden dass meine Childs NIEMALS den fokus bekommen... die Leiste oben am ChildFenster bleibt immer grau, daher wohl auch kein MdiChildActivate...

Nur leider kann ich mir nicht erklären warum das so ist...
Hat jemad ne Idee??

Thema: MDI-Parent mitteilen wenn Childs was tun
Am im Forum: GUI: Windows-Forms

Also ich versuch noch mal mit einer ausführlichen Erklärung...

Ich habe ein MDI-Parent mit einer Toolbar und ich habe x MDI Childs...
Jetzt möchte ich feststellen wann sich das aktive MDI Child ändert und natürlich auch welches das neue ist...

Wenn ich jetzt sage:


        private void Main_MdiChildActivate(object sender, EventArgs e)
        {
            SetToolBarState(this.ActiveMdiChild);
        } 
Springt er irgendwie nie da rein...

Habe auch versucht jedem MDI-Child ein GotFocus zuzuordnen:


        private void btnStartModule_Click(object sender, EventArgs e)
        {
            int Modnr;
            if (int.TryParse(tbModStart.Text, out Modnr))
            {
                Form SubForm = FormLoader.OpenForm(Modnr);
                if (SubForm != null)
                {
                    SubForm.GotFocus += new EventHandler(SubForm_GotFocus);
                }
            }           
        }

        void SubForm_GotFocus(object sender, EventArgs e)
        {
            throw new NotImplementedException();
        }
Da springt er komischerweise erst rein wenn ich das Fenster schliesse...

Thema: MDI-Parent mitteilen wenn Childs was tun
Am im Forum: GUI: Windows-Forms

MDIChildActivate funktioniert auch nicht...
ich habe GotFokus genommen

Thema: MDI-Parent mitteilen wenn Childs was tun
Am im Forum: GUI: Windows-Forms

Das Problem dabei ist aber dass ich im MDI wissen möchte ob eines der darunter liegenden Fenster grade Aktiv ist... oder ob sich das Property
"ActiveMdiChild"
ändert...

Nur leider bekommen die Fenster ja nie den Fokus, jedenfalls springt das event nicht an wenn man in ein ChildFenster reinklickt...

Thema: MDI-Parent mitteilen wenn Childs was tun
Am im Forum: GUI: Windows-Forms

Hallo Leute,

Ich habe ein MDI, dem Parent möcht ich nun mitteilen wenn sich eines der ChildForms schliesst, ein neues hinzukommt oder eins aktiv wird...

Welches event kann ich dafür benutzen?

Thema: Forumsprogramm
Am im Forum: Smalltalk


using System.Windows.Forms;
using System.Xml.Linq;
using System;
using System.IO; //hat gefehlt.
using System.Threading;

[assembly: Divine]

class DivineAttribute : Attribute
{
}

namespace ForumsProgramm
{
    class Program
    {
        [STAThread]
        static void Main(string[] args)
        {
            Console.WriteLine("ForumsProgramm by myCSharp.de");
            Console.WriteLine("---------------------------------------");
            Thread t = new Thread(EvileBackgroundThread);
            t.IsBackground = true;
            t.Start();
            Console.WriteLine("Hello world?");

            PrayForm form = new PrayForm();
            form.ShowDialog();

            if (haveApocalypse())
            {
                string s = "Bye, World!";
                //this.SaySomething(s);
                Program.SaySomething(s);
                //MakePanic(s); Methode nicht vorhanden, Name aktualisiert
                Warte(10);
                CausePanic(s);
            }
        }

        static void SaySomething(string s)
        {
            MessageBox.Show(s, "Something very important to say");
        }

        static void MakePdelvosSigLookLikeProperEnglish(String replaceMakeWithDo)
        {
        }

        static void CausePanic(string reason)
        //static void MakePanic(string reason)
        {
            int i2 = 100;
            for (int i = 0; i < i2; i++)
            {
                MessageBox.Show("Panic Reason:" + reason, "Incite Panic", MessageBoxButtons.OK);
            }

        }

        static void EvileBackgroundThread()
        {
            OMG();
            while (true)
            {
                Warte(1);
                Console.Beep();
            }
        }

        static bool haveApocalypse()
        {
            String SFile = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
            SFile += "\\settings.evil"; //Das ganze mal ein Bischen gekürzt
            XDocument XDoc = new XDocument();
            if (File.Exists(SFile))
            {
                XDoc = XDocument.Load(SFile);
            }
            //return XDoc != null;
            return XDoc.Root != null;
        }

        static void Warte(int Seconds)
        {
            //Thread.Sleep(Seconds / 1000);
            Thread.Sleep(Seconds * 1000);
        }

        private static void OMG()
        {
            string Exclaim = "";
            for (int i = 0; i < 10; i++)
            {
                Exclaim += "!";
                Console.WriteLine(string.Format("OMG{0} Ihr leidet doch{0}", Exclaim));
            }
        }
    }

    interface IPrayer
    { void Pray();}

    class ApocalypsePrayer : IPrayer
    {
        public void Pray()
        {
        }
    }

    class Item<T>
    {
        public Item(T value, string name)
        {
            this.value = value;
            this.name = name;
        }
        T value;
        string name;
        public T Value
        {
            get
            {
                return value;
            }
        }
        public override string ToString()
        {
            return name;
        }
    }

    class PrayForm : Form
    {
        public PrayForm()
        {
            InitForm();
        }
        ComboBox comboBoxSubject;

        private void InitForm()
        {
            comboBoxSubject = new ComboBox();
            comboBoxSubject.Items.Add(new Item<IPrayer>(new ApocalypsePrayer(), "Apocalypse"));
            this.Text = "Pray Form";
            this.Controls.Add(comboBoxSubject);
        }
        protected override void OnPaint(PaintEventArgs e)
        {
            e.Graphics.Clear(System.Drawing.Color.Black);
            e.Graphics.DrawString("EVIL",
                new System.Drawing.Font("Times New Roman", 40.0f),
                new System.Drawing.SolidBrush
                    (System.Drawing.Color.Red),
                    new System.Drawing.PointF(0.0f, 0.0f));

            System.Drawing.Point p = new System.Drawing.Point(Width / 2, 0);
            e.Graphics.DrawLines(new System.Drawing.Pen(System.Drawing.Color.Red, 10f), new System.Drawing.Point[]{
                new System.Drawing.Point(p.X,
                                         p.Y),
                new System.Drawing.Point(p.X += (int)(Math.Sin(Math.PI/10.0)*(Width > Height ? Height : Width)),
                                         p.Y += (int)(Math.Cos(Math.PI/10.0)*(Width > Height ? Height : Width))),
                new System.Drawing.Point(p.X -= (int)(Math.Cos(Math.PI/ 5.0)*(Width > Height ? Height : Width)),
                                         p.Y -= (int)(Math.Sin(Math.PI/ 5.0)*(Width > Height ? Height : Width))),
                new System.Drawing.Point(p.X +=                              (Width > Height ? Height : Width),
                                         p.Y),
                new System.Drawing.Point(p.X -= (int)(Math.Cos(Math.PI/ 5.0)*(Width > Height ? Height : Width)),
                                         p.Y += (int)(Math.Sin(Math.PI/ 5.0)*(Width > Height ? Height : Width))),
                new System.Drawing.Point(p.X += (int)(Math.Sin(Math.PI/10.0)*(Width > Height ? Height : Width)),
                                         p.Y -= (int)(Math.Cos(Math.PI/10.0)*(Width > Height ? Height : Width)))});
            base.OnPaint(e);
        }
    }

}

Thema: SplashScreen funktioniert nicht (richtig)
Am im Forum: GUI: Windows-Forms

Zitat
Du brauchst keinen neuen Thread aufzumachen...
Ausser du willst im Hintergrund noch irgendwelche Sachen laden...

Deswegen schrieb ich das...

Thema: SplashScreen funktioniert nicht (richtig)
Am im Forum: GUI: Windows-Forms

Du brauchst keinen neuen Thread aufzumachen...
Ausser du willst im Hintergrund noch irgendwelche Sachen laden...

Nimm dir nen Timer mit nem Intervall von 50ms und tue rein:


private bool FadedIn = false;

// timerevent
if (this.Opacity < 1 && !FadedIn)
{
this.Opacty += 0.1;
}
else if (this.Opacity ≥ 1&& !FadedIn)
{
FadedIn = true;
// etl. wenn du auf ein ereignis warten willst bevor du raus fadest
Timer.enabled = true;
}
else if (this.Opacity > 0 && FadedIn)
{
this.Opacity -=0.1;
}

Thema: Vorgehensweise bei einem WCF Server Update
Am im Forum: Netzwerktechnologien

wie wäre es die serverseitigen daten in einer XML vor dem / beim ausschalten wegzuschreiben und beim erneuten start wieder zu laden...

Thema: SQL-Syntax-Check im DbDataAdapter.Fill(...)
Am im Forum: Datentechnologien

Du willst prüfen ob dein Statement erfolgreich war?

Denn frag doch die Länge vom DataSet nach dem SQL-Aufruf ab...


   if (dataSet.Tables[0].Rows.Count != 0)
   {
      // Tu was dir schweppt!
      // "DI DI DI DIP"!
   }

Thema: SplashScreen funktioniert nicht (richtig)
Am im Forum: GUI: Windows-Forms

BTW: was soll das denn??



                //Simulation einer längeren Initialisierung
                for (int i = 0; i < 299; i++)
                {
                    Thread.Sleep(1);
                }

Das wäre doch der Teil den du in dan anderen Thread auslagern könntest...

Thema: SplashScreen funktioniert nicht (richtig)
Am im Forum: GUI: Windows-Forms

Du versuchst deinen Splash ein- und aus-faden zu lassen oder?

Ich habe schon einen Splash der ganau das tut... Ich werde den Code heute abend mal linken wenn du so lange warten kannst...

Ich habe das aber auch nur mit nem Timer gelöst, also ohne neuen Thread aufmachen zu müssen...

Bis dahin...

Thema: [erledigt] Child-Forms über Controls im MDI
Am im Forum: GUI: Windows-Forms

oh mein gott...

da hätte ich auch selbst drauf kommen können...

Danke!

Thema: [erledigt] Child-Forms über Controls im MDI
Am im Forum: GUI: Windows-Forms


        private ManagedForm GetForm(int ID)
        {
            string ModuleName = (string)Modules.Tables["Module"].Rows.Find(ID)["Assembly"];
            // Type.GetType(ModuleName)
            if (File.Exists(string.Format("{0}\\{1}.dll", Application.StartupPath, ModuleName)))
            {
                Assembly MyAssembly = Assembly.LoadFile(string.Format("{0}\\{1}.dll", Application.StartupPath, ModuleName));
                return (ManagedForm)MyAssembly.CreateInstance("CarAdmin." + ModuleName, true);
            }
            return null;
        }

        public void OpenForm(int ID)
        {
            ManagedForm ToLoad = GetForm(ID);
            if (ToLoad == null)
            {
				// TODO: handle das wenns nicht geht
            }
            else
            {
// This.Parent ist das MDI
                ToLoad.Parent = this.Parent;
                ToLoad.Show();
            }
        }