Laden...

Forenbeiträge von christof.k Ingesamt 159 Beiträge

30.04.2013 - 14:25 Uhr

Jetzt kommt der Teil wo ich leider noch ein paar Stichworte brauche - Sorry.

Habe es gerade kurz versucht zu implementieren und habe noch ein paar Fragen.


public struct TabStuct
{
    public UserControl TabReference;
    public string TabName;
}

public TabStuct[] Tabs = new TabStuct[11];

void FillTabs
{
    // hier werden die Usercontols instanziiert und das Array Tabs gefüllt
}

void ScrollThroughControls()
{
    foreach (TabStuct tab in Tabs)
    {
        Console.WriteLine("**** " + tab.TabName);
        foreach (Control control in tab.TabReference.Controls)
        {
            Type type = control.GetType();
            Console.WriteLine(type.ToString() + " " + control.Name);
        }
    }
}

Output:

\**** Tab1
System.Windows.Forms.TableLayoutPanel tableLayoutPanel1
System.Windows.Forms.Label label13
\**** Tab2
System.Windows.Forms.TableLayoutPanel tableLayoutPanel1
System.Windows.Forms.Label label13
\**** Tab3
System.Windows.Forms.TableLayoutPanel tableLayoutPanel1
System.Windows.Forms.Label label13
\**** Tab4
System.Windows.Forms.Label label4
System.Windows.Forms.TableLayoutPanel tableLayoutPanel1
\**** Tab5
System.Windows.Forms.Label label4
System.Windows.Forms.TableLayoutPanel tableLayoutPanel1.....

Mein Problem ist nun das ich nur das tableLayoutPanel bekomme und nicht die Controls darin....wie komme ich da vernünftig weiter und bin ich auf dem richtigen Weg?

Danke
Christof

30.04.2013 - 12:38 Uhr

Hi,
danke für das Feedback. Zumindest muss ich nicht weitersuchen 😉
Mein "Problem" ist, dass ich meine Applikation in viele Einzelfenster (tabControl gesteuert) gesplittet habe und jedes Tab durch eine eigene Klasse dargestellt wird (jeweils ein UserControl welche das gesamte SubGUI für den entsprechenden Tab enthält).
Damit sind die Controls nicht global verfügbar und ich muss eine Threadsichere Get-Funktion für alle einzelnen erstellen und zentral die Stati (.Checked, .SelectedIndex, .Text) zum Speichern einsammeln.

Da für das Sichern der Zustände die Kapselung eher hinderlich ist hier noch die letzte Frage: Wir kann ich am einfachsten den Status aller Controls zentral erreichen?

Danke nocheinmal
Christof

30.04.2013 - 12:23 Uhr

Hallo,
ich suche nach einer schnellen (von der Aufwandsseite) Möglichkeit den Status von meinen GUI Feldern (Comboboxes, Checkboxes, Textfelder, ...) beim Schließen der Applikation zu speichern um diese beim Start der Applikation wieder zu laden.
Hintergrund sind die vielen Controls und der Wunsch der Nutzer diese nicht bei jedem Start setzen zu müssen (Meine Applikation simuliert Signale auf dem CAN Bus und jedes Signal kann individuell gesteuert werden).

Die meiner Meinung nach aufwändige Variante ist es, den Status jedes Controls abzufragen, in einem XML zu sichern und beim Laden wieder jedes Control einzeln zu initialisieren....meine Hoffnung ist, dass es noch eine pfiffigere Möglichkeit gibt....

Mit der Bitte um Feedback.
Danke
Christof

19.03.2012 - 16:08 Uhr

Hallo,

habe gerade den Aufruf der Funktion durch einen Timer gesteuert und egal ob ich den "normalen" oder den Multimedia-Timer nutze, die schnellste Updaterate ist 15 ms.
Nur wenn ich eine Stopwatch in den Thread einbaue, die für genau 5 ms den Thread blockiert, bekomme ich das gewünschte Ergebniss.

Ich frage mich, wie dass andere kommerzielle Tools lösen, die eine hohe zeitl. Auflösung realisieren.

Bis bald
Christof

19.03.2012 - 14:01 Uhr

Hi,

ich habe für eine lange Zeit nur noch an den Nachrichteninhalten herumgeändert und deshalb nicht die Updaterate beobachtet.
Deshalb denke ich, dass es vor einem Jahr noch wunderbar funktioniert hat....schon schräg.
Es gibt Tools von der Firma, die die HW Herstellt. Diese schaffen diese hohe Auflösung ohne einen Prozuessorkern aufzubrauchen....

Vielleicht hat ja jemand noch eine Idee?

Danke
Christof

19.03.2012 - 13:08 Uhr

Hi,
Timer hatte ich sehr früh mal versucht, doch haben diese noch einen größeren Overhead, so dass dieses sehr schnell in eine Sackgasse geführt hat.....oder verstehe ich Dich falsch?

Danke
Christof

19.03.2012 - 12:44 Uhr

Hallo,

seit einigen Jahren schreibe ich an einer Applikation, um Nachrichten gesteuert auf dem CAN Bus zu senden (mittels Vector Hardware, wenn dies jemanden was sagt).
Dazu nutze ich folgendes Konstrukt

while(1)
{
   SendeNachricht();
   Thread.Sleep(5)
}

um alle 5ms die Funktion ablaufen zu lassen der dann entscheided, was zu senden ist.
Dies hat bisher immer blendend funktioniert (über Jahre hinweg).
Im laufe der Zeit muss sich aber "irgend etwas" geändert haben. Denn nun wird mein Thread im Normalfall immer nur alle 15 ms ausgeführt (auch wenn ich Thread.Sleep(1) probiere). Ich habe das nur durch Zufall herausbekommen und kann deshalb nicht sagen, was sich in der Umgebung (Windows) geändert hat. Win XP war immer das Betriebssystem.
Es kann nicht an der Rechnerpower liegen, da ich eine Updaterate von 0,3 ms bekomme, wenn ich das Thread.Sleep weglasse. Dies blockiert aber natürlich einen Kern.
Wir ist klar, dass Windows kein Echtzeitbetriebssystem ist, aber da es über eine lange Zeit hinweg wunderbar funktioniert hat bin ich so verwundert.
Hat jemand hierzu vielleicht einen Tip?

Vielen Dank im Voraus.
Christof

18.01.2011 - 20:38 Uhr

Das Problem (ich hoffe ich bin da nicht allein) ist, das manche Projekte als "Hobby" anfangen, d.h. man hat nie richtig dafür Zeit, ist froh wenn es dann läuft. Dann wächst so ein Projekt und eh man sich versieht, wird es Unternehmensweit eingesetzt und man traut sich nie, den Sourcecode weiterzugeben, da es sonst peinlich wird.

In Zukunft werde ich da ein größeres Augenmerk drauf legen.

Vielen Dank für den Top Support in diesem Forum!
Christof

17.01.2011 - 21:46 Uhr

Hi,

vielen Dank für die fruchtbare Diskussion. Ich denke ich habe noch den Designfehler, dass ich meine Low-Level Ebene zu stark an die GUI gekoppelt habe. War am Anfang nicht davon ausgegangen, Automatisierung je zu brauchen.
Ich denke das werde ich auflösen und dann Deinen Tip zum Thema IPC aufnehmen.
Das Thema named pipes gefällt mir, da es völlig Sprachunabhängig ist. Dass sollte Excel auch hinkriegen, oder?
A propos: Wofür steht "BL"?

Vielen Dank!

Christof

17.01.2011 - 18:00 Uhr

Hi,

danke für den Tip.

Eigentlich suche ich auch eine Möglichkeit, "unter" der GUI zu bleiben, also z.B. auf custom user messages zu reagieren.
An COMM traue ich mich nicht ganz ran, da ich da jede Menge Arbeit erwarte.

Ich dachte an eine Lösung wie z.B. jeder Funktion meines Programmes eine ID zu geben und dann kann jemand eine message an mein Programm schicken (wie auch immer) und zu der ID den Wert des Signals angeben. Und schon wäre die Fernsteuerung fertig. Den Umweg über die GUI finde ich auch eher "unelegant".

Als nächstes schaue ich mir mal Deine Vorschläge an, aber falls Du noch einen Tip hast, immer her damit.

Danke
Christof

17.01.2011 - 11:27 Uhr

Hi,

Unser Messtool für die Kommunikation hat eine COMM-Schnittstelle, welche über Excel angesprochen wird.
Mein Tool sendet nur die richtigen Nachrichten zur rechten Zeit über den CAN-Bus.
Diese Messungen werden dann vom Excel-VBS ausgewertet.

Wie würden gerne bei Excel bleiben, da damit auch nicht C#-Kenner umgehen können. Das Skript im Hintergrund wertet die Excel-Tabelle aus, die in sich Zeilenweise die Tests definiert.
Ich weiß, es gibt da weit aus elegantere Lösungen, aber diese hat sich etabliert und ich benötige sonst ein kostenloses, "relativ" leicht wartbares tool.

Deshalb würde ich gerne im ersten Schritt gerne eine Möglichkeit haben, meine Funktion von Excel über fernzusteuern. Da das mit den Windows Nachrichten schon prinzipell klappt frage ich mich, wie man diese so selbst definieren kann, dass ich die in meiner C# Applikation auswerten kann.

Aber wie gesagt, elegantere (aber im ersten Schritt durch Excel nutzbare) Lösungen sind herzlich willkommen.

Danke
Christof

17.01.2011 - 11:09 Uhr

Das Problem ist, das das Testen sich nicht auf meine Applikation bezieht, sondern auf das Steuergerät, was am CAN Bus hängt. Meine Applikation ist sozusagen nur der "Stimulator". D.h. ich will nicht meine GUI testen sondern diese nur fernsteuern.

Excel ist sozusagen das Bindeglied und steuert meine Applikation und wertet Daten aus dem Steuergerät aus. Final wertet das Excel Skript dann die Ergebnisse aus.
Diese läuft zufriedenstellend (wenn da nicht das Fernsteuerproblem wäre 😉)

Danke
Christof

17.01.2011 - 11:02 Uhr

Hallo,

ich habe eine Applikation geschrieben, welche auf den CAN-Bus verschiedene Nachrichten ablegt und die über das eigene GUI gesteuert wird.

Für eine Testautomatisierung benötigen wir eine Schnittstelle, welche meine Applikation fernsteuert.
Im Moment wird das über Excel-VBS und SendMessage gemacht, welche den User "simultiert". Dies funktioniert nur bedingt gut, da z.B. spezielle Usercontrols so nicht erreichbar sind. Außerdem darf ich keine meiner GUI-Elemente umbennen, da ansonsten das Excel-Makro auch angepasst werden muss.

Eine Google- und Forumsuche hat leider nur Ergebnisse gebracht, wie man andere Anwendungen steuert. Ich würde lieber eine einfache aber effiziente Art in meine Applikation einbinden, so dass die Fernsteuerung vereinfacht und generisch wird.

Ich habe von Möglichkeiten gehört, auf User-Messages zu reagieren, doch fehlt mir da noch etwas Info.

Über einen Tip, wie ich möglichst schnell so ein Interface realisieren kann und Excel weiterhin als Fernsteuertool nutzen kann, wäre ich sehr dankbar.

Vielen Dank
Christof

10.08.2010 - 17:01 Uhr

Hi,

nach all den Argumenten habe ich XPath versucht und bin begeistert.
Was ich nun machen werde ist, per XPath den Node zu finden und den Inhalt per Regex auf meine Bedingungen zu prüfen (und dann potentiell zu ändern).
Erste Versuche sehen gut aus.

Danke nochmals!
Christof

10.08.2010 - 10:35 Uhr

Mein vorheriges Beispiel hatte ich vereinfacht, aber anscheinend zu sehr, sorry.

Der eigentliche Fall ist "etwas" komplexer:

<SW-INSTANCE><SW-CS-STATE>changed</SW-CS-STATE>
<REMARK/>
</SW-INSTANCE>
<SW-INSTANCE><SW-CS-STATE>changed</SW-CS-STATE>
<REMARK>text123</REMARK>>
<DATE>2009-02-17T11:25:06</DATE></SW-INSTANCE>

Wenn ich nun alle "SW-INSTANCE" Tags löschen möchte, die das untertag REMARK leer haben (also <REMARK/>) funzt das nun nicht mehr, da es auf einmal ganz viele '>' Zeichen gibt.

Zufällig dafür noch einen Tip?
Danke!
Christof

10.08.2010 - 10:32 Uhr

Hallo,

ich habe mich schon immer gefragt, warum es in C# nicht möglich ist, innerhalb einer funktion einer lokalen Variable ein Gedächtnis zu verpassen wie mit "static" in C.
Manchmal brauche ich nur einen kleinen Speicher und muss bisher immer eine globale Variable innerhalb der Klasse definieren. Dadurch habe ich viele kleine Variablen global, obwohl dieses für mich etwas "unsauber" ist, da andere Funktionen nie auf diese globale Variable zugreifen.

Es wäre schön, wenn jemand dazu einen Kommentar geben könnte....

Danke
Christof

10.08.2010 - 10:05 Uhr

Hallo,

ich weiß, das Thema ist schon tausend mal durchgesprochen, aber leider nur "fast". Ich habe nun zwei Tage lang Google und eine Stunde das Forum durchsucht und bin auch "fast" fündig geworden.

Mein Problem:


<SW-INSTANCE>
	456
</SW-INSTANCE>
<SW-INSTANCE>
	123
	a456a
</SW-INSTANCE>
<SW-INSTANCE>
	a89a
</SW-INSTANCE>

Dort möchte ich nur den Tag, in dem z.B. der Text 123 vorkommt, finden.
Ich muss auf Regex zugreifen, da ich mir ein Command-Line Regex tool geschrieben habe, welches gut funktioniert. Deshalb möchte ich nicht auf andere Klassen zurückgreifen.

Einen Tag selbst kann man ja per

<SW-INSTANCE>.*?</SW-INSTANCE>

erhalten.
Wenn ich diesen nun aber auf

<SW-INSTANCE>.*?123.*?</SW-INSTANCE>

erweitere, fängt das Match beim ersten <SW-INSTANCE> an, und nicht beim entsprechenden.
Irgendwie sehe ich leider den Wald vor lauter Bäumen nicht und hoffe auf Eure hilfe.

Vielen Dank!

Christof

26.03.2010 - 13:23 Uhr

Hallo,

eigentlich will ich wirklich nur wissen, wieviele Treffer es gegeben hat.
Ich dachte auch an einen MatchEvaluater und dort für jeden Match das Replace mit der gleichen Regex durchzuführen, leider klappt dass aber nicht mit lookarounds.....

Christof

26.03.2010 - 12:24 Uhr

Hallo,

ich möchte gerne nach dem Aufruf einer Ersetzung ein Feedback, wie oft diese durchgeführt wurde.
Leider finde ich nur bei der Suchfunktion, dass ich dafür "Matches.Count" auswerten kann. Beim Replace gibt es kein Äquivalent.
Wenn ich aber zuerst eine Suche ausführe, um nur die Anzahl zu erhalten, dauert jede Ersetzung doppelt so lange.

Gibt es hier eine einfache Lösung?
Vielen Dank
Christof

17.09.2008 - 11:32 Uhr

Tjojo...schwer für mich hier weiterzumachen.

Mich wundert nur, was passiert wenn ich mit der rechten Maustaste auf meine Applikation in der Taskleiste clicke, da dann dieser Deadlock aufgehoben wird. Dies würde bei der Analyse helfen.....

Christof

17.09.2008 - 09:06 Uhr

Kleiner Nachtrag:

Wieso auch immer scheint es daran zu hängen, dass ich mit


            Console.SetOut(myTextWriter);
            Console.SetError(myErrorTextWriter);

die Consolen in eine RTF Textbox umzuleiten.
Ich kann mir nicht vorstellen, wie das mit dem anderen Thread in Verbindung steht, aber es ist so.

Kann ich mir irgend eine Art von Deadlock hier einhandeln?

Der genannte Thread macht am Anfang noch keine Ausgabe an die Console.

Mit der Hoffnung auf Hilft

Christof

P.S.: Die PC Abhängigkeit scheint zwischen Single- und Dualcore zu sein. Bei Dualcore klappts, bei Singlecore nicht......komisch

17.09.2008 - 08:53 Uhr

Hallo,

ich habe eine relativ simple Anwendung geschrieben, welche neben der GUI zwei weitere Threads nutzt.

Auf meinen und anderen PC's läuft die Anwendung wie erwartet.
Auf manchen anderen PC's hängt sich die Anwendung vor dem Start eines Threads auf und nimmt keine Kommandos mehr entgegen.
Ich habe dies auf die folgende Zeile eingrenzen können indem ich in die ThreadFunction eine Ausgabe gelegt habe. Diese wird nicht aufgerufen.

MyThread = new Thread(new ThreadStart(ThreadFunction));
RxThread.Start();

Vielmehr hängt die Anwendung bei der Zeile

RxThread.Start();

da eine Ausgabe direkt danach nicht erfolgt.

Alle Kommunkationen der Threads mit der GUI laufen über Invoke aufrufe.

Das komische ist, sobald ich mit der rechten Maustaste auf das Programm in der Taskleiste drücke, läuft meine Anwendung weiter und der Thread wird gestartet....Ich habe dafür keine Erklärung.

Ich hoffe Ihr könnt mit dieser Wagen Aussage etwas anfangen oder zumindest einen Tip geben, was ich zu tun habe.

Danke

16.09.2008 - 11:51 Uhr

Hallo,

danke für den Tip. Ich bin immer davon ausgegangen, dies wäre nur beim Schreiben nötig (dafür gibt es zumindest jede Menge Beispiele, keine für das Lesen von Werten). Deshalb hatte ich immer angenommen, dass Delegates immer typ void sind.

War also eine nette Lernkurve und jetzt klappt alles blendend.

Danke
Christof

16.09.2008 - 08:00 Uhr

Hallo,

ich habe bereits viel über das ändern von Werten eines Controls über Invoke gelesen und dies auch erfolgreich umgesetzt.

Überraschender Weise bekomme ich eine InvalidOperationException, sobald ich versuche, die Textlänge einer RichTextBox aus einem fremden Thread zu lesen.

Kurz zu meiner Anwendung:
Ich möchte alle Consoleausgaben in diese RichTextBox umleiten.
Dazu erschaffe ich meinen eignene TextWriter, der die RichTextBox im Konstruktor übergeben bekommt und das schreiben übernimmt.
Das schreiben in die RichTextBox mache ich per Invoke, was auch super klappt.
Nun wollte ich die Ausgabe formatieren und wollte dazu die Länge des Textes in der RichTextBox vor und nach dem Einfügen ermitteln. Hier startet nun mein Problem da bei der Zeile

int a = control.TextLength

die Exception auftritt.

Bin über jeden Tip dankbar.

Christof

12.09.2008 - 11:45 Uhr

Hallo,

hier Umleitung des Consolen outputs
habe ich einen Tip gelesen, der sagt:

Console .SetOut(TEXTWRITER_OBJEKT) 

"Dazu muss man im Textwriter nur den Text an die Textbox anhängen!"

Nun frage ich mich, wie kann ich einen Textwriter schreiben, der in eine Textbox schriebt??

In der zwischenzeit schaue ich mir schonmal Eure Ideen an.

Christof

12.09.2008 - 11:26 Uhr

Hallo,

in meinem WinForm Programm nutze ich sehr oft Console.Write / Writeline.

Nun würde ich gerne all diese Ausgaben in ein RTF-Control umleiten.

Ich habe nun schon einige Stunden mit Google verbracht, habe aber meistens nur links zu Dateiausgaben gefunden.

Ich denke ich muss einen eigenen TraceListener erstellen, Write/Writeline überscheiben und gut ist. Aber ich weiß dann nicht, wie ich den mit meinem RTF-Control verknüpfe.

Bin für jeden Tip dankbar
Christof

12.09.2008 - 11:23 Uhr

Hallo,

dankeschön für die vielen Antworten. Irgendwie fehlt mir das richtige Stichwort beim Suchen.

Christof

11.09.2008 - 21:09 Uhr

Hallo,

aus der CodeProject Seite habe ich mir eine nette Outlookbar heruntergeladen, die ich als Basis für meine Windows Form nehmen möchte.

Links im Dialog befindet sich nun die Outlookbar mit den einzelnen Buttons und den rechten Teil möchte ich nutzen, um je nach drücken eines Buttons einen Dialog einzublenden, den ich im VS Designer erstellt habe.

Soll am Ende wie ein Tab-Control funktionieren, aber etwas schicker aussehen (eben gesteuert durch die Outlookbar und nicht durch die Tabs).

Ich finde noch nicht den richtigen Startpunkt und bin dafür für jeden Tip dankbar.

Vielen Dank im voraus
Christof

31.03.2008 - 10:11 Uhr

Hallo,

ich nutze ein TAB-Control in dem ich das Validated-Ereigniss von Textboxen ausnutzen möchte. Ich möchte nämlich auf drücken von "Return" die Box auswerten.

Dazu setzte ich die Eigenschaft "CausesValidation" der Textbox und der Tabs auf true.
Darüber hinaus setze ich noch "AcceptsReturn" der Textbox auf true.
Da die Validierung bei Fokus-Verlust ausgelöst wird fange ich nun keydown ab und wenn Return gedrückt wurde setze ich den Focus auf ein anderes Element im Tab und dann wieder zurück. (kann ich Validate auch manuell auslösen? Wäre vielleicht schöner)

Das klappt auf dem ersten Tab super, leider wird auf einem Untertab das Validated Ereignis nur aufgerufen, wenn ich die Textbox per Mausclick oder per Tabulator verlasse. Mein Return wird erkannt und der Focus wechselt auch, aber Validated wird eben nicht aufgerufen.

Kann mir jemand sagen welches Bit mir fehlt?

Danke
Christof

03.03.2008 - 20:22 Uhr

Suppi, das war ja einfach 😉

Aber wie immer, man muss nur wissen wo's steht.

Vielen Dank
Christof

21.01.2008 - 16:43 Uhr

Der Link zeigt nur auf Felder bei denen geschrieben wird. Ich möchte nur lesen....deshalb habe ich gestrauchelt...

Christof

21.01.2008 - 14:04 Uhr

Hallo Zusammen,

meine kleine Applikation ist in mehrere Tabs unterteilt.
Ein Thread fragt den Inhalt einer Combobox in einem Tab periodisch ab.

Wenn ich den Thread starte und der User in einem Tab ist, in dem die besagte Combobox nicht ist, funktioniert alles wie gewünscht.
Wenn der User nun in den besagten Tab switched während der Thread läuft, oder wenn der Thread gestartet wird, wenn der User in diesem Tab ist, wird die besagte InvalidOperationException ausgelöst. (ich hoffe die Erklärung ist klar geworden...konfuser Satz)

Die MSDN Hilfe zeigt bei dieser Fehlermeldung nur auf Schreibzugriffe, bei denen das passieren kann.

Kann mir jemand einen Tip geben, wonach ich suchen kann.

Vielen Dank
Christof

30.12.2007 - 21:59 Uhr

Hallo,

ich habe eine Spalte meiner Datagridview als Combobox konfiguriert.
Nun finde ich es komisch, dass ich drei clicks benötige,bis sich die dropdown liste öffnet.
Es scheint dass das so läuft:

  1. Click: Zeile selektieren
  2. Click: Zelle selektieren
  3. Click: Drop Down öffnen.

Kann ich irgendwie erreichen, dass sich die dropdown-Liste schon beim ersten Click öffnet?

Danke
Christof

28.12.2007 - 22:31 Uhr

Hallo,

nach dem Tip habe ich noch weiter gestöbert und die Lösung ist folgende:


            DataGridViewColumn column = dataGridView1.Columns[1];
            DataGridViewComboBoxCell cell = new DataGridViewComboBoxCell();
            cell.Items.AddRange(new object[] {
            "aaa",
            "vvv"});
            column.CellTemplate = cell;

Diese Einstellung gilt dann für alle danach eingefügten Zeilen, d.h. man kann damit nicht eine beliebige Zelle modifizieren, sondern nur bei Erstellung der Zeilen. In meinem Fall ist das aber OK.

Dankeschön nochmal
Christof

27.12.2007 - 22:22 Uhr

Hallo,

ich verstehe im Moment nicht, wie ich damit die Auswahl der Combobox der Zelle verändern kann.

GetValue soll laut MSDN ja nur den Zell-Wert zurückgeben, nicht die Auswahl.

Irgendwie fehlt mir da noch ein Bit......

Danke
Christof

26.12.2007 - 21:09 Uhr

Hallo Zusammen,

ich möchte die Datagridview als Konfigurationstool einsetzen.
Dazu würde ich gerne eine Anzeige mit 2 Spalten erstellen. Soweit so gut.
Erste Spalte soll den Parameter in Textform darstellen, zweite Spalte die Items selbst in einer Combobox.
Nun muss aber die Liste der auswählbaren Items pro Zeile anders sein.
Bisher habe ich nur die Möglichkeit, der gesamten Spalte eine Itemlist zuzuweisen.

Ist meine Idee mit einer DataGridView überhaupt realisierbar? Und wenn ja, wie?

Danke
Christof

06.09.2006 - 13:02 Uhr

Hi!

Diese Lösung funktioniert nun:

using System.Reflection;
string GetVersion()
{
    Assembly asm = Assembly.GetExecutingAssembly();
    return asm.GetName().Version.ToString(); 
}

Ich habe auch

AssemblyInfo myInfo = new AssemblyInfo (Assembly.GetExecutingAssembly ());

versucht, doch finde ich da keine Version-Informationen...

Vielen Dank
Christof

06.09.2006 - 10:02 Uhr

Hi!

Ich weiß nicht genau wo das Problem liegt, aber bei mir wird AssemblyInfo angemeckert. Was muss ich einbinden um dort weiterzukommen?
Ich habe schon die Doku konsultiert, doch dort gibt es keine Erläuterungen zu AssemblyInfo.Version.

In meiner DLL möchte ich die Version dieser DLL rausgeben, nicht die Version der aufrufenden Applikation (zumindest verstehe ich GetCallingAssembly so).

Sorry wenn ich nervig werde, aber ich habe zumindest versucht meine Hausaufgaben zu machen (doku, etc.) aber ich komme einfach nicht weiter.

Vielen Dank
Christof

06.09.2006 - 09:38 Uhr

Dankeschön, aber welches assembly muss ich dazu referenzieren?
Bei mir meckert der Compiler da er AssemblyInfo nicht kennt....

Ich habe in der Hilfe nachgeschaut und dort wird die AssemblyInfo Klasse im System.Web erwähnt,doch ich habe das Gefühl dass das hier nicht richtig ist.
Kann ich noch einen weiteren Tip erhalten?

bis bald
Christof

06.09.2006 - 09:24 Uhr

Hallo Zusammen,

das Thema wurde hier schon diverse male besprochen, aber immer wurde die Version einer fremden DLL ermittelt.
Ich habe eine DLL erstellt und dieser möchte ich eine Funktion GetVersion() mitgeben, welche die eigene Version zurückgibt.
Bei normalen Applikationen geht das mit Application.ProuctVersion doch wenn ich das bei meiner DLL mache, bekomme ich immer die Version der aufrufenden Applikation und nicht meiner DLL.

Hat jemand einen Tip wie die Lösung in diesem Fall aussieht?

Vielen Dank
Christof

23.06.2006 - 19:46 Uhr

Das war zu einfach 🙂

Da fehlte mir doch ein Stückchen C# Wissen....

Dankeschön
Christof

23.06.2006 - 13:45 Uhr

Hallo!

Ich hoffe der Titel ist nicht zu kompliziert.

Ich habe gerade eine Klasse geschrieben, die ein Kommunikations-Protokoll realisiert. Diese nutzt (auch eine von mir geschriebene) Klasse, die die Hardware anspricht.
Nun möchte ich dieses Gebilde in einer DLL kapseln, die Hardwareklasse aber nicht nach außen sichtbar machen. Für die Protokoll-Klasse muss sie aber natürlich sichtbar sein.

Wie ist der richtige Weg, um diese Aufgabe zu lösen?

Vielen Dank
Christof

18.06.2006 - 22:05 Uhr

Dann nur noch eine Frage zur Compile-Option "Embedded Resource":

Was heißt das für meine DLL, wenn ich diese einbette? Sie ist dann ja Teil meiner EXE.
Aber da Ihr diese Lösung nicht erwähnt habt wird dies hier wohl nicht funktionieren.
Interessier mich nur, was dabei passiert....

bis bald
Christof

16.06.2006 - 07:43 Uhr

Ein wie ich finde nützlicher Link zum Thema Singleton:

http://www.yoda.arachsys.com/csharp/singleton.html

Christof

16.06.2006 - 07:38 Uhr

Hallo Zusammen,

ich erstelle gerade eine DLL die zwingend zwei fremde DLL's (eine C# und eine C++) benötigt.
Ich möchte nun vermeiden, alle drei mitzugeben sonder dachte mir, dass ich die fremd-Dll's auch in meine einbetten kann.
In Visual-Studio rein technisch kein Problem, meine DLL wächst im Platzbedarf auch um die zwei fremden, doch leider findet meine DLL die fremden nicht. D.h. ich muss sie trotzdem explizit als Datei zur Verfügung stellen.

Gibt es hierfür eine Lösung?

Zweite Frage nebenbei:
Warum beschwert sich Visual Studio (express edition) wenn ich System.Windows.Forms nutzen möchte? Es sagt mir System.Windows wäre nicht Teil des Namespaces. Gibt es für DLL's Randbedingungen, die ich zu beachten habe?

Vielen Dank
Christof

13.06.2006 - 15:24 Uhr

Vielen Dank!

Das hat geklappt. Sorry dass ich diesmal so unverständig war....irgendwie muss es die Hitze sein 😉

Christof

13.06.2006 - 14:50 Uhr

Sorry, aber im Moment habe ich keinen Startpunkt.
Hast Du zufällig etwas Zeit mit eine Richtung aufzuzeigen?
Hab das Thema Serialisierung noch nicht angepackt und bisher nur Beispiele gefunden, die auf eigenen Klassen (mit dem "Serializable" Attribut) aufbauen.

Danke
Christof

13.06.2006 - 14:47 Uhr

Ich muss nur public Eigenschaften serialisieren (fast nur Basisdatentypen) und auf das Format bin ich nicht festgelegt. Je lesbarer desto besser.

Danke
Christof

13.06.2006 - 14:42 Uhr

Hi!

Alles was ich bisher gefunden habe läuft darauf hinaus, eine Klasse mit [Serializable] zu erstellen und diese dann zu serialisieren.
D.h. ich muss einen Wrapper für meine gegebene Klasse schreiben in der jede Eigenschaft einzeln widergespiegelt wird.

Ich habe noch nichts gefunden, womit ich auf einen Schlag die Serialisierung dieser fremden Klasse erledigen kann.

Kannst Du mir eine Stelle im SDK nennen? Meine Stichworte waren irgendwie nicht so richtig.

Dankeschön
Christof

13.06.2006 - 14:33 Uhr

Hallo!

Ich habe eine fremde Klasse mit zig von Eigenschaften die ich zwecks Dokumentation gerne serialisieren möchte. Eine Deserialisierung ist nicht nötig, wenn es weitere Problem birgt.
Ungern würde ich jede Eigenschaft seperat behandeln.

Kann mir jemand helfen? Ich habe bereits nach "serialisieren" gesucht doch noch keinen Beitrag gefunden der mein Problem erörtert.

Vielen Dank
Christof