Huhu hab dazu noch ne Frage. Warum ist denn das Panel noch nötig? Normalerweise ist das doch nur ein visuelles Element oder? Danke
_______________
Post by Benelli
Benelli Ecommerce Dienstleister
Ich bin auf der Suche nach C# Quelltext in vernünftigem Coding-Style den ich mir mal ansehen könnte. Am liebsten mit WPF, Netzwerk und Datenbank (Sql) Code ... Vorschläge?
Dynamische Arrays gibts in C# Built-In, die nennen sich Listen
Und dann kannst du mit der Methode Intersect aus beiden Listen die Schnittmenge bilden.
Hoffe das hat dir erstmal geholfen.
Warum denn bitte ableiten?
Du hast das UserControl. - Auf diesem befindet sich besagtes Panel. - Ob das wirklich notwendig ist weist wohl nur du.
Ich denke das UserControl sollte völlig reichen. (Je nach Aufgabenstellung). Dann wird das hinzuzufügende Control genommen und im Designer zum UserControl auf das Panel gebracht.
OnPaint der Klasse Control löst das Paint-Event aus.
Also mache es so wie von lööklökl vorgeschlagen. Und wenn es nicht geht, hast Du vergessen das Event zu abonnieren.
und im form1_paint Event zu zeichnen bringt auch keine Besserung. Da ist auch alles weg wenn ich mit nem anderen Fenster drübergeh.
Das stimmt nicht.
DarkShadow44 schrieb:
Du kannst nicht einfach über einen string der den objektname enthält auf das gleichnamige objekt zugreifen...
Doch Control.ControlCollection.Item-Eigenschaft (String)
Wenn du jedoch unabhängig von der zugrunde liegenden API, ob nun Forms oder WPF, einen Timer starten willst, nimm dazu lieber System.Threading.Timer. Dann brauchst du keine Nachrichtensschleife wie beim Forms-Timer
Hallo zusammen,
ich bin dabei ein Backup Programm zu schreiben. Ich erstelle einen Auftrag in dem ich eine TreeView habe, der wie ein Explorerbaum aufgebaut ist. Dort kann ich die Quellen auswählen indem ich die entsprechenden Verzeichnisse und Dateien checke. In einer 2. TreeView wähle ich dann das Ziel aus. Diese Daten werden mit ein paar anderen Daten (Auftragsname, Ausführungszeitpunkt- und Häufigkeit) in eine XML Datei gespeichert. Also nach dem Motto
<TaskID = 1>
<Source>Ordner 1</Source>
<Source>Ordner 2</Source>
<Destination>Zielordner</Destination>
...
Diese XML lese ich dann in ein ListView ein. Aus dem ich dann mehrere Möglichkeiten haben. Auftrag ausführen, Auftrag löschen und Auftrag bearbeiten. Da liegt mein Problem. Ich möchte beim bearbeiten wieder einen TreeView angezeigt bekommen, in dem der TreeView aufgebaut wird und mit die Quellen checkt. Außerdem sollen auch alle anderen Ordner (überordner) bis zur Quelle angezeigt werden (nicht gecheckt). Ich übergebe die Quellen über einen String z.b "D:\Eigene Bilder\Urlaub|D:\Eigene Bilder\Party|D:\Eigene Musik" (durch pipes getrennt)
Ich habe es schon hinbekommen, dass er mit die ausgewählten Quellen in einen TreeView ausgibt und checkt (siehe Code). Nun möchte ich aber z.b. bei einer Quelle D:\Eigene Bilder\Urlaub alle Ordner und Dateien in D:\ zum TreeView hinzufügt, den Node Eigene Bilder ausklappt, dann mir alle Ordner und Dateien im Node Eigene Bilder anzeigt und den Ordner Urlaub Urlaub checkt. So auch mit den anderen Quellen.
Das ganze muss wohl mit einen Directory.GetDirectories bzw. GetFiles machbar sein. Nur an den stellen wo ich das eingefügt habe (innerhalb der Schleife in der die Quellen ausgelesen werden) werden mir die gesamten Nodes mehrfach hinzugefügt (wenn mehrere Quellen). Ich hab den unten genannten Code aus einem anderen Forum, in dem mir nicht weitergeholfen wurde, da werden Hashtables verwendet, die eigentlich dafür sorgen sollen, dass Nodes nicht doppelt hinzugefügt werden, da ich keine Ahnung von Hashtables habe und den Code nicht ganz blicke, erschwert dies mich ein wenig. Könntet Ihr mit Hilfestellung geben. Vllt eine Alternative von Hashtables. Ich benutze .Net Framework 4.
Hier mein Code. Vielen Dank
private void test(TreeNode parentNode, String NodeSource)
{
//Hashtable erzeugen
Hashtable dictNode = new Hashtable();
//Hier liegen die String in Form "D:\Eigene Bilder\Urlaub|D:\Musik\Internet|D:\Musik\Alben" per | getreent
string[] sources = NodeSource.Split('|');
foreach (string readDir in sources)
{
//Ausgelesene Zeile bei "\" splitten:
string[] splittedPath = readDir.Split('\\');
string strBegin = "";
parentNode = null;
foreach (string pathSplitter in splittedPath)
{
//Wenn das Element leer ist, abbrechen
if (pathSplitter == "")
{
break;
}
//strBegin += "\\" + pathSplitter;
strBegin += pathSplitter+ "\\";
if (dictNode.ContainsKey(strBegin))
{
parentNode = (TreeNode)dictNode[strBegin];
continue;
}
dictNode[strBegin] = new TreeNode(pathSplitter);
if (parentNode == null)
{
this.treeView1.Nodes.Add((TreeNode)dictNode[strBegin]);
}
else
{
//MessageBox.Show(parentNode.FullPath);
parentNode.Nodes.Add((TreeNode)dictNode[strBegin]);
parentNode.Expand();
//Ausgewählten Node checken
if (((TreeNode)dictNode[strBegin]).FullPath == readDir)
{
((TreeNode)dictNode[strBegin]).Checked = true;
}
}
parentNode = (TreeNode)dictNode[strBegin];
}
}
}
Okay, dann werde ich mal versuchen die fehlenden Informationen nach zu liefern und dabei meine Kristallkugel auch an der Tür abzugeben.
Ich verwende die FFTW Wrapper Lib von http://www.sdss.jhu.edu/~tamas/bytes/fftwcsharp.html diese greift zurück auf http://www.fftw.org/
Als Ausgabe vom ByteArray bekomme ich folgenden Stream http://bioinet.org/stream.txt
Als Ausgabe vom FloatArray bekomme ich folgendes http://bioinet.org/stream_float.txt
Ich habe mich zwischenzeitlich gefragt ob ich mit den Float-Werten evtl. ein Bild zeichnen kann?
Bei weiteren Rückfragen stehe ich immer gerne zur Verfügung!
C_Cheaf schrieb:
Gibt es gratis Icon Pakete die ich auch ohne rechtlichen Schwierigkeiten benutzen kann (welche die nicht gestohlen sind)?
Wenn du mit der LGPL leben kannst kann ich die Crystal Icons empfehlen (Ist zumindest eine der besten Iconsammlungen die ich gefunden habe).
Na ja, die Defaultwerte habe ich ja in der "App.config" definiert, welche ich explizit zum Projekt hinzugefügt habe. Allerdings wird diese "App.config" bei der Installation nur in den Ordner kopiert wo sich auch die *.exe befindet.
Ich dachte, dass wenn die Konfigdatei im Ordner des lokalen Users nicht vorhanden ist, dann die Defaultwerte der Konfigdatei aus dem *.exe- Ordner verwendet werden.
Leute danke euch..!
Mit dem Background worker funk es zwar einwandfrei...werde mir aber auch den Code von inflames2k (Event) ansehen und ausprobieren..!
Hab jetzt raus, wann die Proxy-Instanz ungleich NULL wird. Wenn nach der Initialisierung des Dialogs ein erster beliebiger Event auftritt. Versteh nur nicht WARUM..
Also hab ich als zusätzlichen Eventhandler ein DialogShown eingefügt und bin ab da theoretisch in der Lage den Inhalt des Proxys als Init der Anzeige zu übergeben.
Stattdessen hab ich ein neues Problem. Wenn ich das nämlich mache funktioniert das Hauptprogramm nicht mehr. Änderungen der Parameter gehen irgendwo zwischen UpdateSourceObject() im Parameterdialog und der Übergabe von PlugInParameter in der execute-Funk des Hauptprogramms verloren ausser ich benutze die temporäre Applyfunktion..
Die ist aber nur zum Angucken gut, das Prog insgesamt funzt nur mit btnok.