Laden...

Forenbeiträge von rock4k Ingesamt 39 Beiträge

23.03.2012 - 10:37 Uhr

Danke, ja da bin auch grade drauf gekommen. Und auch schon getestet und implementiert.

Ok, dieser Thread hat sich erledigt.

Grüße Mario

23.03.2012 - 09:07 Uhr

Ok. Danke, da stand ich wohl ein wenig auf dem Schlauch.

Aber habe gleich noch eine andere Frage, kann ein SelfHosted Service die Anwendung benachrichtigen?

Bsp. Wenn der Service eine Anfrage von außen bekommt, dann soll er die Anwendung über diese Anfrage informieren. Geht das?

22.03.2012 - 14:52 Uhr

Hallo,

ist es möglich einen WCF-Service (Selfhosted) von einem unabhängigen Projekt anzusprechen. Habe folgende Szenario:

Es gibt eine WPF-Application mit einem Selfhosted-Service. Eine zweite Anwendung (eigenständige Solution) soll auf diesen Service zugreifen bzw. konsumieren.

Ist dies Möglich ohne Sharing des Serviceinterfaces in den Solutions?

Vielen Dank und Grüße an euch...
Mario

02.11.2011 - 11:42 Uhr

Danke für Deine Antwort.

Ich muss wohl noch ergänzen, dass wir genau diesen Fall haben. Es gibt zum einem die Nutzer der Terminal Server und dann haben wir aber noch eine ganze Menge Nutzer (bsp. Notebooks), die die Anwendung immer aktuell von einer Freigabe starten. Da sind die meisten Geräte mit Win7 ausgestattet.

Deswegen gibt es mit Win7 große Probleme bei den sogenannten Vertrauensstellungen. Habe da schon mit Batches bei Programmstart und allem möglichem experimentiert, ohne einen akzeptablen Erfolg.

Thema Vertrauensstellungen bei Win7:
Das verursacht einige Messageboxes der UAC und viel schlimmer: Bei den einem funktioniert es, beim anderen überhaupt nicht bzw. völlig wirkungslos.

Inzwischen bin ich soweit auch völlig andere Wege zu gehen und die Anwendung auch dementsprechend umzustellen bzw. auch die Architektur zu ändern. Aber mich würde interessieren ob es hierzu tatsächlich "offizielle" Lösungsansätze (Bsp. Microsoft) gibt.

02.11.2011 - 11:02 Uhr

Deployment auf Terminal Server

Hallo,

hin und wieder suche ich nach diesem Thema. Denn wir haben eine ähnliche Situation.

Die Frage ist doch eigentlich:
Wie update ich meine Anwendung auf einem Terminal Server, während die Anwender damit arbeiten?

Wir haben z.B. eine Clientanwendung, mit denen in der Firma durschschnittlich 30-40 Benutzer arbeiten. Da unser Betrieb 24h/7T arbeitet, gibt es theoretisch nie einen Zeitpunkt für den Tausch(Update) des Programmes. Selbst die programmeigene Ankündigung von Stunden vorher wird von den Anwender erfolgreich ignoriert, übersehen oder vergessen.

Bisher müssen immer alle offenen Bezüge zu den DLL's usw. entfernt werden, um diese austauschen zu können. Wir ziehen den Anwendern quasi die Füsse weg. ShadowCopy funktioniert nur sehr unzuverlässig (siehe meine anderen Beiträge).

Was für eine Lösung gäbe es hierfür? Also für ein Update der Anwendung während des Betriebes?

Meine Vorstellung wäre, dass die "neuen Dateien" deployed werden und die Nutzer im gerade laufenden Programm einen Hinweis bekommen. Nach Neustart der Applikation durch den Nutzer arbeitet er mit der neuen Version.
Mit einfachen FileCopies ist das nicht zu lösen (Win7 Berechtigungen uvm.).

Oder gibt es ganz andere Ansätze?

Ich recherchiere schon seit Monaten nach einer Lösung.

Vielen Dank und Grüße
Mario

P.S.: Kennt jemand eine von Microsoft vorgeschlagene Vorgehensweise?

13.10.2011 - 08:52 Uhr

Vielen Dank für die ersten Ansätze.

Die Lösung mit Triggern hat im Moment wohl die meiste Punktzahl bei mir. Aber das wirft neue Fragen auf, z.B. wie kommt ein Trigger an die Information welcher User Daten geändert hat?

Ich möchte die möglichst beste Entscheidung treffen, da die Anwendung noch sehr wachsen wird.

Gibt es nicht irgendwo etwas zum nachlesen? Einen Vergleich oder so etwas?
Es ist schwer nach diesem Thema im Netz zu suchen, da die Schlagwörter immer mit anderen Technologien zusammenhängen.

12.10.2011 - 21:32 Uhr

Hallo,

ich habe nun schon mehrere Tage, zu jeder Gelegenheit, nach Information gesucht und zwar um folgendes Thema:

Beim Arbeiten mit Datenbanken bzw. beim Entwurf gibt es verschiedene Ansätze um Angaben über Änderung von Datensätzen für spätere Auswertungen zu speichern. Einfachstes Beispiel sind Tabellenfelder wie "created" oder "changedby" usw.

Meine Frage ist nun, gibt es elegantere Lösungen Datenänderungen festzuhalten (mit weiteren Informationen, Bsp. Wer hat wann was geändert?)? Am besten auf Datenbankebene? Geht aber auch auf Applicationebene.

Beim SQL-Server habe ich etwas über Nachverfolgung gelesen.
Habt Ihr Erfahrungen mit diesem Thema?

Vor mir steht ein Refactoring einer knapp 500 Tabellen umfassenden Datenbank mit zugehöriger Anwendung.

Vielen Dank für Eure Tipps.

Viele Grüße
Mario

29.09.2011 - 12:34 Uhr

Hallo,

also nachdem ich nochmal fast den ganzen Vormittag damit getestet habe
ist "ShadowCopyFiles" auf einem Win2003 völlig unwirksam. Es gibt darauf keine Reaktion, es wird weder ein eigenes Cache-Verzeichnis erstellt noch in Temp-Ordnern auf dem Systemlaufwerk. Getestet auf 2 getrennten Maschinen.

Einen Grund hierfür habe ich auch im Netz nicht gefunden. Dann muss ich wohl eine andere Lösung finden. 😦

28.09.2011 - 19:56 Uhr

Hallo Günther,

mit Vorbild meinte ich dies hier: Shadow Copying 😉

Ja werde morgen mal auf dem Server forschen, wo die Kopien erstellt werden. Werde meine Resultate hier weiter veröffentlichen.

Schönen Abend noch...

28.09.2011 - 18:22 Uhr

Hallo myCSharp-Gemeinde,

nachdem ich nun schon den ganzen Nachmittag damit verbracht habe und zu keinem Ergebnis gekommen bin:

Ich möchte die Option ShadowCopyFiles nutzen. Habe das nach dem Vorbild von "gfoidl" gemacht und habe mich in die Geschichte AppDomains eingelesen.

Auf unserem Win2003 Server geht dieses jedoch nicht. Er erstellt kein Cache bzw. keine Verzeichnis. Auch nicht wenn man als Administrator das Programm ausführt. Lokal auf meinem Win7 Rechner macht er dies ohne Probleme. Desweiteren ist meine Frage, ob diese Funktionalität auf Netzwerkfreigaben ebenfalls möglich ist?

Habe schon viele, viele Webseiten gewälzt, jedoch ohne einen Hinweis oder Tipp in dem Zusammenhang mit Win2003.

Vielen Dank für Eure Unterstützung.

Grüße
Mario

28.09.2010 - 11:47 Uhr

Toller Beitrag rainbird.

Das mit dem TypeFilterLevel auf den BinaryFormatter war schon so implementiert. Werde das aber auf beiden Seiten noch einmal prüfen und testen.

Toller Beitrag, weil die Info mit dem Zyan-Projekt... 😃 sehr interessant, das werde ich mir mal viel genauer anschauen.

Vielen Dank an euch.

Grüße rock4k

28.09.2010 - 09:17 Uhr

Hallo,

nachdem ich nun schon viele viele Dinge ausprobiert habe, hat das Problem immer noch Bestand.

Der Rechner ist ein Notebook, Windows XP SP3, inzwischen alle Updates (inkl. Framework 4).
Es wird fast ausschließlich das Office-Packet benutzt. Besondere Software ist auch nicht installiert, nur ein Antivirus Programm (Kaspersky).

Mit diesem Rechner tritt noch ein Phänomen auf, er druckt falsche Daten.
Die Anwendung arbeitet mit dem EntityFramework. Kann es sein, dass es bei W-LAN Verbindungen
zum SQL-Server (komische) Probleme gibt?

Jedenfalls tauchen auf diesem Notebook erhebliche Probleme auf, die auf allen anderen Rechnern im Büro kein Thema sind.

Wie gesagt, größtes Problem ist das Druckrendering mit dem Ergebnis der falschen Schrift.

Was soll ich tun? Das Notebook neu aufsetzen?

Vielen Dank für Eure Hilfe...

21.09.2010 - 08:30 Uhr

Hallo,

ich brauche vielleicht wieder einmal nur einen Tipp.

Ich habe eine Anwendung (Server/Client) die per Remoting per TCP/IP kommuniziert. Wir haben in der Firma eine Domäne. Der Server läuft auf einer Maschine die dieser Domäne zugeordnet ist.

Jetzt haben wir das Problem, dass Clients, die sich nicht in der Domäne befinden, mit dem Server kommunizieren sollen (müssen). Der Fehler liegt logischerweise in der Authentifizierung.

Nachdem ich nun schon viele viele Artikel zu Remoting gelesen habe und auch viele Tests ausprobiert habe, so habe ich noch keine Lösung für diese Problem.

Diese Einstellung funktioniert auch nicht:

TcpChannel tcpCnl; 

Hashtable properties = new Hashtable(); 
properties["name"] = "Mein Server"; 
properties["port"] = iPort; 
properties["typeFilterLevel"] = System.Runtime.Serialization.Formatters.TypeFilterLevel.Full; 
/* schaltet die Sicherheitsabfrage ab -> ohne Domainüberprüfung */ 
properties["secure"] = false;  

tcpCnl= new TcpChannel(properties, null, null);

Vielen Dank für eure Hilfe.

04.09.2010 - 16:57 Uhr

Hallo,

nach langer Beitragspause bin ich nun an ein Problem gestoßen, wo ich mit meinem Latein und der stundenlangen Google-Suche am Ende bin.

Ich habe in einem Projekt normale .rdlc Dateien als Report. Diese werden im Programm sehr ähnlich nach dem Anleitung: Drucken mithilfe des LocalReport-Objekts (C#) Prinzip direkt gedruckt.

Mehrere Leute arbeiten mit dem Programm, aber nur bei einem tritt das Problem auf:
beim Rendern des Reports wird die Arial-Schrift durch Verdana ersetzt. In allen Berichten.

Ich vermute, dass es an seinem System (WinXP) liegt, es ist jedoch nirgendwo dokumentiert wie diese Rendermethode arbeitet. An dem System kann ich nichts großes ändern (z.B. neu aufsetzen)
ist auch noch gerade der Rechner vom Chef.

Hat jemand vielleicht eine Idee oder einen hilfreichen Hinweis?

Vielen vielen Dank.

P.S.: Wenn der Report als PDF gerendert wird, dann tritt das nicht auf.

23.03.2010 - 16:25 Uhr

Problem gelöst:
An dem ListView war eine BindingSource gebunden, die da eigentlich gar nicht brauchte.
BindingSource entfernt und schon geht's. 😃

Gruß Mario

23.03.2010 - 12:39 Uhr

Hallo mycsharp-community,

bin heute wieder auf ein Problem gestoßen, wo ich auch bei Google noch keine richtige
Antwort gefunden habe.

Ich habe ein Form mit 3 Comboboxen, 1 ListView und 1 DataGridView.
Das Drag&Drop findet von dem ListView zum DataGridView statt. Das funktioniert auch alles soweit (zumal ich damit auch Erfahrung habe).

Nach den Events ist jedoch die Form wie "eingefroren". Die Comboboxen lassen sich nicht mehr öffnen und die Form selbst lässt sich auch nicht schließen.

Woran könnte das liegen? Vielen Dank für Eure Hilfe.

Grüße Mario

P.S.: Die Form wird in einem MDI Container geöffnet und hat einen MDIParent.
Nach näherer Analyse werden keine Events mehr verarbeitet. Kein Close(), kein
Click() usw.

19.01.2009 - 13:03 Uhr

Hallo,

würde mich auch einmal interessieren wie RaiseMouseEvent richtig verwendet wird. Ich habe keinerlei CodeBeispiele o.ä. gefunden. Die Dokumentation schweigt sich auch darüber aus. Was wird für "object key" eingesetzt?
Doch eigentlich so, oder?:

MouseEventArgs margs = new MouseEventArgs(MouseButtons.Left, 1, mClickX, mClickY, 0);
RaiseMouseEvent(OnMouseClick, margs);

Jedoch möchte der Compiler ein "object key"-Typ haben.
Danke für Eure Unterstützung.

30.10.2008 - 09:20 Uhr

Danke für die Tipps, habe es dann doch auf die "umständliche" Weise machen müssen.

Nach welchen Kristeriuem richtet sich eigentlich die Sortierung in der Auflistung "Controls"?

29.10.2008 - 15:17 Uhr

Hallo,

nachdem ich schon die Suche mehrmals angestrengt habe (auch über Google), suche ich auf für folgendes Problem eine Lösung:

Wenn eine Form mit so einigen Controls geöffnet wird, möchte ich einfach den Focus auf das erste bearbeitbare Control setzen. Ich kenne die Auflistung .CONTROLS, nur habe ich damit keine richtige Lösung gefunden, indem ich alle Controls durchlaufe, da schon der Umstand der möglichen Container die Sache erschwert. Nach TabIndex geht das auch nicht, da einige Controls mit TabIndex in Abhängigkeit anderer Daten auch deaktiviert werden.

Bin für Vorschläge sehr dankbar.
Grüße rock4k

13.10.2008 - 16:45 Uhr

Ok. Der Hintergrund meiner Überlegungen ist eigentlich, dass ich jetzt einen sauberen Client habe und einen Server. Da jetzt die Anwendung eine ausgewachsene Geschichte von mehr als 200 Form's annimmt, war meine Überlegung die Form's-Klassen komplett vom Server ausliefern zu lassen und auf dem Client nur noch zu instanzieren. Das hätte für mich den Vorteil, dass ich während des Betriebs der Anwendung Änderungen an einzelnen Form's machen könnte.

Soweit ich mich jetzt den Tag über schlau gemacht habe (Remoting, Serialisierung usw.), instanziert immer der Server, oder liege da falsch?

13.10.2008 - 12:00 Uhr

Danke für die schnelle Antwort und die Angabe einer Richtung. Bei der Serialisierung können doch nur Objekte übertragen werden? Oder gibt es noch andere Ansätze?
Meine Vorstellung geht dahin, dass die Klassen vom Server ausgeliefert werden und der
Client diese instanziert.

Habe bereits eine Client/Server - Anwendung die per Remoting kommuniziert. Jedoch
auf Basis von Windows-Forms.

13.10.2008 - 11:02 Uhr

Hallo,

ist es möglich Klassen von einen Server zum Client zu übertragen und dann auf dem Client entsprechend Objekte zu erzeugen?

Wenn ja, wie wird das gemacht. Sehr hilfreich für mich ist auch Beispiel-Code oder informative Webseiten.

Vielen Dank für eure Hilfe.

26.06.2008 - 09:17 Uhr

Hallo,

ich habe folgende Frage an euch, da ich für diese Art keine Informationen
im Netz gefunden habe, bzw. habe ich keine Ahnung ob es dafür einen Fachbegriff gibt:

Zur Zeit arbeite ich an einem größerem Softwareprojekt mit einer inzwischen ordentlichen Datenbank. Dabei stellt sich immer wieder folgendes Problem der
Datenspeicherung, bzw. dem Lebenszyklus der Daten.

Folgendes Beispiel dazu:
Eine Tabelle (Tabelle1) in der Datenbank erfasst Daten in denen nur Bezüge zu anderen Tabellen gespeichert werden. In Tabelle1 werden nach und nach sehr viele Datensätze erzeugt. Gleichzeitig soll es Ziel sein, anhand der Tabelle1 eine Historie bilden zu können.
Das Problem dabei ist, wenn sich ein Wert eines Bezuges ändert, dann weiß Tabelle1 nichts von der Änderung, weil nur ein Bezug da ist. Der Wert ist also auch für alle 'alten' Datensätze wirksam.

Nun habe ich mir Gedanken gemacht in Tabelle1 zusätzliche Informationen zu den Bezügen mitzuspeichern. Das würde die Tabelle selbst erheblich vergrößern, was später
bei Auswertungen wieder erhebliche Geschwindigkeitseinbußen mit sich bringt.
Der zweite Nachteil daran ist, dass ich nur einen beschränkten Teil des Bezugsdatensatzes mitspeichern kann, und somit die Zurückverfolgbarkeit nur eingeschränkt möglich wird.

Korrekter wäre wohl alle Datensätze zu denen ein Bezug hergestellt wird, zu kopieren und extra zu speichern. Tabelle1 hält dann Bezüge zu Kopien der Datensätze. Da sehr viele Datensätze in Tabelle1 erzeugt werden, so werden auch sehr vielen Kopien von Bezügen gespeichert. Die Datenbank wächst enorm an und die Transaktionen sind aufwendig.

Meine Frage an euch, ob es zu solchen Themen Lesematerial bzw. Links gibt? Vielleicht hat der eine oder andere noch einen ganz anderen Tipp für mich?

Vielen Dank für Hilfestellung....

Grüße Mario

09.06.2008 - 19:00 Uhr

Also... ich habe es nun definitiv ausprobiert. ES scheitert tatsächlich an der Instanzierung der Forms. Bzw. ist dort diese GUI-Verzögerung.

Wenn ich ein Form vorher instanziere ist die Reaktionsverzögerung = 0. Nun habe ich mir doch mehr konstruktive Hilfe erwartet. Gerade im Bezug darauf, wie man viele Forms verwaltet. Habt ihr Erfahrungen mit größeren Projekten bzw. Anwendungen?

Vielen Dank.

09.06.2008 - 16:52 Uhr

So ich habe mir mal das Speedtrace installiert und ein bischen herumprobiert.

Ich kann bis jetzt immer noch nich nachvollziehen, weshalb das öffnen eines Formulars über Activator.CreateInstance so lang dauert (gemessene Zeit: 2,4 Sekunden).

Also, das Programm ist eine MDI Anwendung mit einem MenuStrip. Die Menü-Einträge werden aus einer Datenbank geholt.

Das Click-Event aus dem Menü verarbeitet folgende Anweisungen:

private void MenuOpenForm(String sFormName, Boolean bRunOnce)
        {
            
            bool bCreateNew = true;
            string sFormType = "MyClient." + sFormName;
            if (bRunOnce)
                foreach (Form frm in MdiChildren)
                {
                    if (frm.GetType().ToString() == sFormType)
                    {
                        bCreateNew = false;
                        frm.Activate();
                    }
                }
            if (bCreateNew)
            {

                ObjectHandle obj = Activator.CreateInstance("MyClient", sFormType);
                IiwFPASBaseFormInterface ICLASS = (IBaseFormInterface)obj.Unwrap();

                ((Form)ICLASS).FormClosing += new FormClosingEventHandler(ChildFormClosing); // MDITab
                ((BaseForm)ICLASS).MDIText = ChildFormGetAvailableName(); // MDITab
                
                ICLASS.ShowForm(this, sParam);
                ChildFormAdd((Form)ICLASS); // MDITab
            }
        }

Beim debuggen habe ich eben festgestellt, dass es beim Aufruf von Activator.CreateInstance eine erheblich Verzögerung gibt.

Ich wäre auch bereit, eine völlig andere Technik der Formulare zu verwenden.

Grüße Mario

09.06.2008 - 10:22 Uhr

Um es mal genauer zu beschreiben. Ich habe mir bereits ein sehr leistungsfähiges DataGridView als UserControl geschaffen. Dieses hatte bisher als Eigenschaft eben den Namen des zugehörigen Edit-Formulars.

Wie ist das gemeint im Tag die Instanz des Edit-Formulars mitgeben? Könntest Du mir das genauer beschreiben?

Das Problem ist gerade die Instanzierung der Edit-Form.

Vielen Dank...

09.06.2008 - 08:30 Uhr

Hallo,

ich habe folgendes Problem:

In einem Projekt habe ich viele Forms mit Listen (DataGridViews). Zu diesen Listen gibt es jeweils ein Edit-Formular.

Bisher habe ich dem Listen-Formular als Eigenschaft den Name des zugehörigen Edit-Formulars als String angegeben und eben über die Möglichkeit von Activator.CreateInstance das Edit-Formular zur Laufzeit instanziert.

Dieser Vorgang des Instanzierens dauert aber erheblich lang. In meinem Fall so 2-3 Sekunden.

Gibt es eine andere Möglichkeit des Formularhandlings?

Vielen Dank für Eure Hilfen....

Gruß Mario

16.05.2008 - 09:39 Uhr

Gibt es dazu Links zum Thema Asynchrone Datenverarbeitung mit Forms? Oder andere Hilfen?

Vielen Dank für Deine schnelle Hilfen. Herbivore. 😉

16.05.2008 - 09:11 Uhr

Ja so in dieser Richtung habe ich mir das schon gedacht, dass es da solche Probleme geben könnte.

Nun habe ich aber inzwischen eine ausgewachsene Anwendung, wo die Formsanzahl bestimmt die 100 übersteigt. Ich wollte mir nicht die Arbeit machen, und die ganzen Forms mit einem BackgroundWorker versehen. Wobei der BgWorker eine unkomplizierte Lösung darstellt.

Wäre so etwas mit Threads zu lösen?

Leider hatte ich bisher keine richtige Zeit, mich mit solchen Dingen zu beschäftigen, da
diese Software bereits eingesetzt wird und ständig ausgebaut wird. Jedoch möchte ich die Performance des Clients verbessern, da dies wohl langsam nötig wird.

Weil der Client am meisten wegen der Client/Server Kommunikation verzögert reagiert, ist mein erster Ansatz die Client-Schnittstelle.

Wie würdet Ihr so etwas lösen?

16.05.2008 - 08:26 Uhr

Ja danke für den Hinweis. Ich glaube ich habe mich etwas unkonkret ausgedrückt.

Ich habe eine Client-Klasse die alle Funktionen zur Server-Kommunikation bereitsstellt u.a. auch GetData() usw.

Viele Forms rufen nun GetData() auf um sich mit Daten zu füllen.
Mein Problem liegt darin:

Form ruft GetData() auf --> GetData() gibt der Form ein DataSet zurück

Meine Überlegung mit dem BackgroundWorker ist:

Form ruft GetDataBackground() --> GetDataBackground() ruft den BackgroundWorker auf --> der BackgroundWorker verarbeitet GetData() --> das DataSet ist jetzt in RunWorkerCompletedEventArgs verfügbar...
aber wie bekomme ich jetzt das DataSet zur Form zurück?

Oder habe ich hier einen komplett falschen Ansatz?

15.05.2008 - 16:42 Uhr

Hallo,

ich habe eine Client/Server Anwendung. Nun habe ich im Client eine Methode (GetData) die mit dem Server eine Verbindung aufbaut und mit der Antwort vom Server ein DataSet erzeugt und zurückgibt.

Nun möchte ich die Kommunikation in einen eigenen Thread oder BackgroundWorker packen, damit die Kommunikation nicht vom GUI-Thread gemacht wird.

Nach umfangreichen Recherchen, auch hier im Forum, weiß ich zwar wie die BackgroundWorker Komponente verwendet wird, aber habe wohl noch einen Denkfehler dabei.

Wie kann mir der BackgroundWorker ein DataSet zurückliefern?

Habe mir gedacht die GetData() Mehtode in den DoWork Event abzuladen. Aber wie bekomme ich dann ein DataSet()?

Vielen Dank für Hilfe.

06.05.2008 - 11:18 Uhr

mmhh. Gut. Da muss ich wohl doch mehr erklären.

Also, ich habe ein eigenes Toolbar-Control. Diese beinhaltet eine Methode, in der ich mit nur einer Zeile Code der Toolbar einen Button hinzufügen möchte. Mit einem Textbutton funktioniert es, jedoch nicht mit einem Bildbutton.

Die Methode bekommt Parameter übergeben, die dem Button einen Namen(id) geben, das (Resourcen)Bild angeben und ob der Button angezeigt werden soll.
Mit "global::myControls.Properties.Resources.blau" müsste ich ja die Parameter prüfen und das genau soll es ja nicht sein bzw. würde ja ausufern. Der Parameterwert selbst soll ja gleich den Namen der Resource angeben.

Also wohl eher die andere Variante, die wiederrum noch nie funktioniert hat. 😦

06.05.2008 - 10:18 Uhr

Ja sehr einfach würde das mit folgender Zeile gehen:

item.Image = global::myControls.Properties.Resources.speichern;

".speichern" ist die entsprechende Resource. Jedoch kann man ja nicht per z.B. übergebenen Parameter an dieser Codezeile ein anderes "Wort" anhängen.

Eine andere Möglichkeit habe ich auch schon getestet. Und zwar:

 Assembly loadedAssembly = Assembly.GetExecutingAssembly();
Stream stream = loadedAssembly.GetManifestResourceStream("myControls.Resources.seitenansicht.Image.png");
Image img = null;
try { img = Image.FromStream(stream); }
catch { }
item.Image = img;
06.05.2008 - 09:57 Uhr

Hallo,

habe folgendes Problem, ich möchte zur Laufzeit die Bilder auf einigen Toolbar-Buttons tauschen. Die Bilder hierfür können durchaus in die Resourcen eingebunden sein.
Also müsste nur noch die entsprechende Resource angesprochen werden.

Ich habe jetzt schon alle Ansätze und Lösungen die hier zum Thema "Resourcen laden" geschrieben wurden getestet, jedoch ohne Erfolg. Suche nun seit 2 Tagen nach einer Lösung.

Es kann doch nicht so sehr aufwendig sein, eine Resource vom Typ Image einem Toolbar-Button zuzuweisen.

Vielen Dank.

27.03.2008 - 20:56 Uhr

Klassen und Methoden sind mir soweit klar, auch wenn das bei C# wesentlich umfangreicher ist.

Eher geht das wohl dahin, was du mit Snippets bezeichnest. Man hat einen Codeblock mit Anweisungen. Dieser wird von verschiedenen Controls bzw. Events einfach ausgeführt. Also den Code einmal schreiben, von mehreren Stellen im Programm aus aufrufen.

27.03.2008 - 20:07 Uhr

OK. Ich stöbere da gerade ein wenig herum.

Hmm. Irgendwie stehe ich auf dem Schlauch:
Wie kann man z.B. Anweisungen die man immer wieder brauch aufrufen.
z.B. um auch bestimmte Anweisungen von verschiedenen Controls ablaufen zu lassen?

In PHP hatte man dafür functions. Wie ist das bei VB?

27.03.2008 - 19:12 Uhr

Hallo,

ich lerne gerade die Entwicklungsumgebung Visual Express 2008 mit C#. Da ich in letzten 3 Jahren intensiv Webprogrammierung (PHP, AJAX, MYSQL usw.) betrieben habe muss ich aus beruflichen Gründen die Visual-IDE lernen inkl. C#.

Soweit ist das mit der Sprache usw. auch kein Problem, jedoch fehlen mir noch ein paar grundlegende Kenntnisse der IDE, wie man Programme strukturiert, wie man bei größeren Projekten die Übersicht behält.

Gibt es hierzu hilfreiche Links oder Lektüre?

Vielen Dank.

27.03.2008 - 12:29 Uhr

Vielen Dank für die schnelle Hilfestellung.

Also ich habe es zuerst mit einer Listbox gelöst. Das funktioniert wunderbar. Mit den anderen Controls werde ich mich noch beschäftigen.

MyCSharp.de wird langsam zu meiner 1. Anlaufstelle im WWW. 😉

27.03.2008 - 09:09 Uhr

Hallo myCSharp - User,

habe vor einigen Wochen angefangen mich mit .NET zu beschäftigen.
Nachdem mir dieses Forum bisher als gute Stütze an Wissen diente, habe ich
jetzt folgendes zu lösen:

Ich habe ein Form, eine Textbox und einen "Suchen"-Button.
In die Textbox soll ein Wert eingegeben werden und der User dann auf "Suchen"
klicken. Die Suchergebnisse sollten in einer Liste erscheinen, aus denen man dann ein Wert anklicken kann. Mit dem anklicken des Listenwertes wird dieser übernommen und das weitere Formular mit den entsprechenden Daten gefüllt.

Da es als Abfrage viele Suchergebnisse geben kann, sollte die Auswahl für den User nicht ganz so umständlich sein. (höchstens ein Scrollbalken)
Welches Element könnte man für die "Liste" benutzen? Ich habe noch keinen genauen Überblick welches Element da von Vorteil ist.

Vielen Dank für eure Hilfe.

Grüße Mario