Laden...

Forenbeiträge von MillionsterNutzer Ingesamt 235 Beiträge

09.09.2013 - 17:00 Uhr

Jetzt gehts (Hatte den RibbonTabs und dem RibbonApplicationMenu bereits explizit ein anderes Style zugewiesen...).

Das mit dem Nullen hab ich auch noch eben geprüft, also:


<Setter Property="ContextMenu" Value="{x:Null}">

Hat bei mir allerdings nur bei manchen Elementen funktioniert (häää????). Mir jetzt egal: Mit Hidden geht es nun und das soll mir mal reichen. Thema erledigt 👍

Danke für die Unterstützung!

Viele Grüße

Ralf

09.09.2013 - 16:30 Uhr

Hmm... so scheint es zu gehen...


<Style x:Key="HideContextMenu" TargetType="{x:Type FrameworkElement}">
            <Style.Setters>
                <Setter Property="ContextMenu">
                    <Setter.Value>
                        <ContextMenu Visibility="Hidden" />
                    </Setter.Value>
                </Setter>
            </Style.Setters>
</Style>
<Style BasedOn="{StaticResource HideContextMenu}" TargetType="RibbonButton" />
<Style BasedOn="{StaticResource HideContextMenu}" TargetType="RibbonTab" />
<Style BasedOn="{StaticResource HideContextMenu}" TargetType="RibbonGroup" />
<Style BasedOn="{StaticResource HideContextMenu}" TargetType="RibbonApplicationMenu" />
<Style BasedOn="{StaticResource HideContextMenu}" TargetType="RibbonApplicationMenuItem" />
<Style BasedOn="{StaticResource HideContextMenu}" TargetType="RibbonSeparator" />

Edit: Ja, scheint zu funktionieren... Bis auf RibbonTab und RibbonApplicationMenu... Warum das denn???

09.09.2013 - 16:05 Uhr

Bekomm es so auch nicht hin.

Vorweg: TargetType={x:Type FrameworkElement} allein schein ohnehin nicht zu gehen (siehe hier).

Ausserdem musste ich feststellen das "ContextMenu.Visibility" scheinbar einen seltsamen Nebeneffekt hat: Das ganze Control verschwindet in diesem Fall (das Kontextmenü bleibt aber trotzdem verfügbar). Vielleicht ein Bug?

Leider läßt sich das Thema nicht so einfach googeln...

Noch eine Idee?

09.09.2013 - 14:00 Uhr

Hi ProGamer,

das was du eben aus dem Kopf heraus vorschlägst geht leider nicht (war auch mein erster Gedanke). Du kannst ja nicht das Property "ContextMenu" auf "Hidden" setzen sondern nur "ContextMenu.Visibility". Leider bekomme ich es so nicht hin. Ich habe das Gefühl man kann in XAML nicht mal eben mit einem Punkt eine ebene tiefer gehen... Aber wie schon gesagt ich kenn mich hier nicht gut genug aus...

09.09.2013 - 11:58 Uhr

Hallo zusammen,

in einer meiner WPF-Anwendungen nutze ich das Ribbon-Control das beim .NEt-Framework 4.5 standardmäßig dabei ist. Dabei ist mir nun aufgefallen das dieses schon von sich aus ein ContextMenu hat mit welchem man z.B. das Ribbon minimieren kann.
Ich möchte dieses Menu nicht haben und habe mal eben recherchiert was man da machen kann. Scheinbar kann man es nicht mal eben per Property ausschalten, allerdings kann man im XAML das Menu ausblenden:


<Ribbon.ContextMenu>
    <ContextMenu Visibility="Hidden" />
</Ribbon.ContextMenu>

Leider musste ich nun feststellen, dass ich das nicht nur für das RibbonControl selber machen muss sonder auch zusätzlich für alle Controls darin (RibbonTab, RibbonGroup, RibbonButton, ...) was ich als sehr unschön empfinde.
Ich bin (noch) kein Spezialist was WPF und XAML angeht - kann man sowas nicht evtl. schöner lösen? Evtl. mit einem Style?

Viele Grüße

Ralf

29.08.2013 - 16:31 Uhr

Hallo Quaneu,

ich weiß zwar nicht warum du es in einen Setter verpackt hast, aber auf jeden Fall wars das was ich gesucht hab 🙂!

Vielen Dank!!!

Ralf

PS: Wenn nur alle Sachen so einfach zu klären wären...

29.08.2013 - 16:09 Uhr

Hi zusammen!

Ich habe einen WPF-DataGrid bei welchem ich gerne den grauen Bereich der am linken Rand des Grids ist verschwinden lassen würde. Leider habe ich keine Property dafür finden können.
Bei WinForms nennt sich das entsprechende Property soweit ich weiß 'RowHeaderVisible'.
Um Misverständnisse vorzubeugen hab ich auch eben einen kleinen Screenshot angehängt.

Als Hintergrund: Eigentlich stört mich das Ding nicht da es ja recht schmal ist. Allerdings verschwindet es aus unerfindlichen Gründen bisweilen in der HeaderRow während es in den folgenden Rows noch vorhanden ist. Das hat den tollen Effekt das dann der Header im Vergleich zu den Rows um ein paar Pixel verschoben ist was wirklich doof aussieht...

Hat jemand von euch eine Idee wie das Teil bei WPF heißt und wie man es verschwinden lassen kann?

Viele Grüße

Ralf

22.07.2013 - 11:07 Uhr

Vielen Dank ErfinderDesRades!!!

So wie ich das sehe hast du das Ganze aus dem Kopf heraus getippt: Hut ab!

Hat leider trotzdem nicht auf anhieb funktioniert aber der Hinweis hat genügt. Jetzt sieht es bei mir so aus:


FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement), new FrameworkPropertyMetadata (System.Windows.Markup.XmlLanguage.GetLanguage (Thread.CurrentThread.CurrentCulture.IetfLanguageTag)));

Tut was es soll 😃

Viele Grüße

Ralf

22.07.2013 - 09:42 Uhr

Hallo zusammen,

arbeite gerade an meinem ersten WPF/MVVM-Project und soweit klappt alles super bis auf eine kleine Unschönheit die mir nicht ganz einleuchtet:
Ich habe einen DataGrid bei dem unter anderem auch ein Datumsfeld angezeigt wird, allerdings wird dieses Datum nicht im deutschen Format sondern im amerikanischen (also mit Schrägstrichen und Monat for dem Tag).
Ich habe für das betreffende DataGridTextColumn nirgends etwas angegeben was zu dieser Formatierung führen sollte. Hat jemand von euch eine Idee woher das kommen könnte?

Viele Grüße

Ralf

Edit: Ich sollte der Vollständigkeit halber noch erwähnen das alles im OS auf deutsche Formatierung eingestellt ist.

04.07.2013 - 10:17 Uhr

Hallo Diräkt,

du hast mich falsch verstanden: CTRL + K +D wird beim XAML-Editor nicht funktionieren - deshalb hab ich ja auch gefragt wie ich mein XAML schön einrücken lassen kann.

Der Link zu akjoshi's Blog hat mir aber super geholfen! Habe das Thema nun im Griff dank seiner Ausführungen!

Vielen Dank für die Hilfe!

Grüße

Ralf

03.07.2013 - 12:39 Uhr

Hallo zusammen,

bei meinem Umstieg auf WPF arbeite ich nun zum ersten Mal mit dem XAML-Editor von Visual Studio (der heißt Cider, richtig?). Dabei vermisse ich die Möglichkeit das XML automatisch richtig einrücken zu lassen wenn man mal nachträglich etwas verschoben hat.
Beim regulären Codeeditor von VS geht das mit CTRL+K+D - für Cider konnte ich nichts vergleichbares finden.
Kann mir jemand von euch kurz einen Tip geben?

VG

Ralf

20.03.2013 - 11:33 Uhr

Hmm das hatte ich bisher eigentlich schon beachtet: Für jeden Thread ist eigentlich fest geregelt welche Daten er lesen und welche er schreiben darf. Es kommt bei meinem Szenario eigentlich nicht vor das zwei Threads auf das gleiche Feld schreiben.

Auch Queues benutze ich bis jetzt.

Ich hatte auch nie damit Probleme mit ungültigen Zugriffen oder dergleichen, es ist nur die Tatsache das die Berechnungen in der MultiThread-Umgebung deutlich länger brauchen als in der SingleThread-Umgebung.

Naja, ein rewrite war ohnehin fällig vielleicht hilft es einfach dieses mal alles etwas übersichtlicher und sauberer zu gestalten.

20.03.2013 - 10:38 Uhr

Hallo zusammen,

mache mir gerade über den Rewrite gedanken und stehe überlege nun wirklich wie mit Daten richtig umgegangen werden soll damit ich unnötigen Overhead spare.

Tatsächlich ist es in meinem Fall so dass der Thread welcher die Bildverarbeitungsaufgaben ausführen soll sowohl Daten aus dem Mainthread bekommt welche für alle Bilder gleich sind, gleichzeitig aber auch Daten von einem separaten Kamerathread bekommt (also die Kamera liefert Bilder und diese werden von einem Thread abgeholt und an den anderen zur Verarbeitung weitergegeben).

Wie soll denn dann hier vorgegangen werden wenn ich threadübergreifende Daten vermeiden soll? Ich muss ja die Daten irgendwie für die Berechnungen bereitstellen?

Viele Grüße

Ralf

19.03.2013 - 11:50 Uhr

Hallo Abt, hallo FZelle,

leider wäre es nicht machbar den Code zu posten da dieser inzwichen ziemlich komplex ist. Darin liegt wahrscheinlich auch das Problem. Ich habe in der Zwischenzeit mich noch etwas mehr eingelesen und einiges Ausprobiert aber jedesmal ohne Erfolg.
Ich denke nun über einen Rewrite nach um den ganzen Prozessablauf nochmals zu vereinfachen und zu vereinheitlichen weil hier doch auch vieles einfach nur 'gewachsen' ist.

Trotzdem würden mich noch zwei Aussagen von euch interessieren:

  • FZelle: Warum sollte ich keine static Methode mit Multithreading in Verbindung bringen?

  • Abt: Was soll beim Messen schiefgehen, wenn es nur ein Stopwatch.Start() und Stopwatch.Stop() gibt?

Viele Grüße

Ralf

19.03.2013 - 10:26 Uhr

Ich habe die Rechenaufgabe der Bildverarbeitung in ein separates Testtool gepackt um einen Vergleich zwischen Ausführung im MainThread vs. Ausführung in separatem Thread zu erhalten. Dabei konnte ich keinen signifigkaten Overhead erkennen - maximal ein paar Millisekunden aber keine 80 Millisekunden.

19.03.2013 - 10:04 Uhr

Hi Abt,

das falsche Messen möchte ich eigentlich ausschließen da die Zeitmessung sowohl in der statischen Methode selbst erfolgt als auch ausserhlab von mir selbst mit der StopWatch nachgemessen wird - in beiden Fällen bekomme ich quasi die gleichen Zahlen.

Overhead hätte ich in diesem Umfang nicht erwartet. 80 ms nur um eine Rechenaufgabe auszulagern halte ich nicht für kurze Zeit - auf der anderen Seite habe ich da ja auch keine Erfahrung. Ich werde versuchen das ganze mal in ein Testtool zu werfen um den Overhead zu ermitteln.
Ich lagere die Rechenaufgabe übrigens über die gewöhnlichen Klassen System.Threading.ThreadStart bzw. System.Threading.Thread aus - also kein System.ComponentModel.BackgroundWorker oder System.Threading.Task oder dergleichen.

Unsauberes Threading ist ein dehnbarer Begriff. Kannst du mir hier eine Idee geben?

Viele Grüße

Ralf

19.03.2013 - 09:39 Uhr

Hallo zusammen,

ich habe eine Anwendung die Bildverarbeitungsaufgaben bewältigen muss. Die eigentliche Bildverarbeitung ist in einer separaten Klasse in eine statische Methode gekapselt. Eigentlich wird nur ein Bild übergeben und jede Menge Objekte zurückgegeben mit denen dann später weitergearbeitet werden kann. Unter anderem wird hier auch die benötigte Rechenzeit zurückgegeben.

Nun stehe ich vor dem Problem dass diese Rechenaufgabe möglichst schnell erledigt werden sollte und hier wird es kompliziert: Wenn ich die Rechenaufgabe direkt vom MainThread der Anwendung (testhalber) aufrufe dann benötigt diese in der Regel ca. 130 Millisekunden.
Im eigentlichen Programmablauf wird die Rechenaufgabe jedoch in einem separaten Thread ausgeführt, nebenher werden noch ein paar Dinge überwacht allerdings ohne dass es hierbei tatsächlich zu Prozessorlast kommen würde. Trotzdem benötigt die Rechenaufgabe im separaten Thread auf einmal über 200 Millisekunden. Dabei hat es scheinbar keine Auswirkung ob ich dem Rechenthread eine höhere Prio gebe. Zustätzlich handelt es sich beim Prozessor um einen Core I-7 mit vier Kernen so dass im Taskmanager 8 Kerne (HyperThreading) angezeigt werden - allesamt sind aber nie annähernd auf 100%.

Ich habe in den vergangenen Tagen schon alles mögliche weg gelassen und aus- bzw. wieder einkommentiert - allerdings habe ich mir auch noch nie Gedanken über Performance in Multithreading-Anwendungen machen müssen. Ich kann einfach keine Ursache ausmachen woher die zusätzlichen 70 Millisekunden kommen sollen!

Hat hier jemand eine Idee wie ich dem Problem auf die Schliche kommen kann?

Viele Grüße

Ralf

10.01.2013 - 17:17 Uhr

Hab mir das mit dem Mailverschicken mal angesehen: Ist doch einfacher als ich erwartet hätte.

Ich denk das werd ich mal ausprobieren.

Danke für die Hilfe!!!

10.01.2013 - 15:04 Uhr

Hallo zusammen,

ich habe einen Windowsdienst der bei einem Kunden auf einem Server läuft. Dieser Dienst bekommt regelmäßig Dateien in ein Input-Verzeichnisgeschoben, welche er dann einliest und in eine Datenbank schreibt.

Wenn mit einer Datei etwas nicht stimmt habe ich diese bisher einfach umbenannt so dass sie nicht erneut eingelesen wird und es dabei belassen. Nun hat der Kunde aber keine Lust mehr jeden Tag in das Verzeichnis zu gucken ob wirklich alle Dateien korrekt verarbeitet werden konnten ober ob evtl. eine liegen geblieben ist.

Mir würden spontan drei Möglichkeiten einfallen wie ich irgendeinem User singalisieren könnte das etwas schief gelaufen ist:

  1. Eine zusätzliche Tabelle in der Zieldatenbank anlegen in der ich Warnungen anlegen kann welche dann von einem separaten Programm auf einer Workstation angezeigt werden können.
  2. Eine Warnung über einen Drucker ausgeben.
  3. Eine eMail versenden.

Die beiden ersten Varianten könnte ich halbwegs schnell realisieren, allerdings finde ich sie sehr unschön. Bei der dritten Variante habe ich keine Erfahrung und wundere mich wie einfach oder kompliziert sowas ist.

Fällt jemand von euch evtl. noch eine bessere Variante ein? Was würdet ihr machen?

Viele Grüße

Ralf

16.11.2012 - 08:51 Uhr

Hallo Bernd,

die Seite hatte ich auch schon entdeckt allerdings kam sie mir auf den ersten Blick nicht seriös vor, vielleicht sollte ich heute erstmal da genauer hinsehen.

Zumindest einen Workaround habe ich bis dahin für mein Problem gefunden: Im SubreportProcessing-Event kann ich die Daten auch manuell für den jeweiligen Auftrag aufbereiten. Nicht schön weil Extra-Code aber es funktioniert.

Vielen Dank für den Hinweis. Ich werd mich dann melden wenn ich mehr weiß.

VG

Ralf

15.11.2012 - 14:08 Uhr

Hallo zusammen,

habe bei meinem aktuellen WinForms-Projekt eine klassische Auftragsverwaltung, bei der unter anderem auch Report für Kommisionierscheine gefordert ist. Der Report ist im Prinzip ganz einfach: Je Auftrag eine Seite die wiederrum die einzelnen Auftragspositionen auflistet.

Ich wollte das eigentlich mit den üblichen Microsoft-Bordmitteln bewerkstelligen so dass beim Kunde nicht auch noch CrystalReports oder ähnliches installiert werden muss, daher habe ich mich für die einfache Reporting Komponente von VS entschieden also den Microsoft ReportViewer in Verbindung mit lokalen rdlc-Reports.

Nachdem meine ersten Versuche mit Subreports kläglich gescheitert sind habe ich eine Beispiel-Solution vom MSDN heruntergelanden welche im Projekt "SupplingData" ein Beispiel gibt wie man einen Subreport richtig einbindet und mit Daten versorgt.

Mithilfe dieses Beispiels kann ich nun tatsächlich einen Subreport in meinen Hauptreport einbinden. Allerdings werden nun je Auftrag alle Auftragspositionen angezeigt, also auch die von anderen Aufträgen.
Ich habe nun schon den halben Tag dafür aufgewendet herauszufinden wie die Microsoft-Leute in ihrem Beispiel das hinbekommen haben dass im Subreport nur die Datensätze angezeigt werden die auch tatsächlich zum übergeordneten Auftrag gehören - allerdings ohne Erfolg!!!
Lediglich wenn ich die OrderDetails.rdlc im Texteditor öffne finde ich eine Filters-Sektion für die Datenquelle - Wie der Filter jedoch im Designer vom VS gesetzt werden soll ist mir schleihaft.

Leider konnte ich bisher auch keine passenden Report-Tutorials für VS2010 im Netz finden. So wie es scheint wurde der ReportDesigner seit VS2008 jedoch kräftig überarbeitet, so dass alte Tutorias nicht passen.

Kann mir jemand verraten was ich falsch mache oder wo ich diesen Filter für die Datenquelle des Subreport setzen kann?

Viele Grüße

Ralf

17.10.2012 - 15:35 Uhr

Hallo,

leider bin ich eine 0 wenn es um Bits und Bitmasken geht daher brauche ich hier kurz ein wenig Syntaxhilfe:

Ich bekomme von einer Hardwarekomponente eine Bitmaske aus der ich zwei Stellen auslesen und getrennt voneinander auch schreiben können sollte.

Das Lesen mache ich wie folgt:


byte bitmaske = 1;
bool statusBit1 = ((bitmaske & 1) == 1);
bool statusBit2 = ((bitmaske & 2) == 2);

Leider habe ich keinen Anhaltspunkt wie ich die Bitmaske an einer bestimmten Stelle manipulieren kann.
Angenommen das zweite bit wäre in der aktuellen Bitmaske bereits auf 1. Mit welcher Syntax kann ich es auf 0 setzen?

VG

Ralf

04.04.2012 - 00:11 Uhr

Hmm, da hab ich auch schon mal drüber nachgedacht, finde ich aber nicht sooo toll, da es ja dann auch länger braucht wenn die Datenbank auch mal tatsächlich nicht erreichbar sein sollte (also bei einem normalen Programmstart).

Das finde ich nicht ganz so elegant 😕

03.04.2012 - 20:50 Uhr

Hi!

Meine Anwendung verwendet den MS SQL Server (2008R2) und prüft beim Start ob alle Datenbanken da sind und ob diese auch passen. Das Ganze funktioniert normalerweise einwandfrei, allerdings habe ich nun einen Kunden bei dem die Anwendung mit dem Windowsstart (also z.b. eine Verknüpfung im Autostartordner) gestartet werden soll - dabei scheint der SQLServer-Dienst etwas zu spät verfügbar zu sein, so dass meine Anwendung denk es sein keine Verbindung zum Server möglich.

Hatte jemand von euch schon mal ein ähnliches Problem? Wie kann ich das am elegantesten umgehen?

Es gibt wohl Progamme mit dem ich den Start meiner Anwendung verzögern kann und ich selber könnte das mit einem einfachen Batch-File machen, aber ich finde das ist keine schöne Lösung - hat da jemand von euch ne bessere Idee?

Viele Grüße

Ralf

16.03.2012 - 11:48 Uhr

Hmm,

also da sich niemand gemeldet hat werde ich hier mal nieder schreiben zu welchem Schluß ich gekommen bin und wie ich mein Problem nun löse:

  1. Linq-To-SQL hat (Stand heute) lediglich die Möglichkeit zu Prüfen ob die Datenbank existiert und ob diese erreichbar ist (.DatabaseExists()).

  2. Linq-To-SQL hat (Stand heute) keine Möglichkeit zu Prüfen ob die angegbene Datenbank der erwarteten Struktur entspricht. Das Einzige was man machen könnte um die Struktur zu prüfen wäre einfach mal einen einzelnen Datensatz aus jeder Tabelle abzufragen und schauen ob dabei ein Fehler auftritt oder nicht.

Da Linq-To-SQL und ADO sich ja aber nicht ausschließen habe ich beschlossen zumindest für die obigen beiden Aufgaben einfach weiterhin ADO zu verwenden so dass ich sicherstellen kann das mir der User keine falsche Datenbank unterjubelt. Wenn man dann erst mal die Struktur der Datenbank geprüft hat kann man auch festlegen zu was für einer Progammversion diese ggf. passt und auf Wunsch dann (wieder mit ADO) die Datenbankstruktur anpassen.

Um ehrlich zu sein ist meine obige Aussage eventuell sogar nicht ganz richtig: Vielleicht braucht es nicht mal ADO um die Aufgaben zu lösen sondern eben nur die handgemachten SQL-Statements welche ich in meinem Projekt dann letztlich über ADO ausführe. Aber eigentlich könnte man diese SQL-Statements evtl. genausogut auch über Linq-To-SQL ausführen (mit .ExecuteCommand und .ExecuteQuery).
Ich habe das in meinem Fall nur nicht gemacht weil ich den passenden Code schon aus einem alten Projekt hatte...

Wer weiß, vielleicht hilft die Info eines Tages mal jemand von euch.

Viele Grüße

Ralf

14.03.2012 - 08:49 Uhr

Hallo,

Meine Anwendung verwendet zwei unterschiedliche SQLServer-Datenbanken (eine für Einstellungen und eine für Produktionsdaten) welche über LinqToSQL angesprochen werden. Der Benutzer hat die Möglichkeit im Programm entweder neue Datenbanken zu erstellen oder vorhandene auszuwählen.

Dabei kann es sein das ein User ausversehens (oder absichtlich) eine falsche Datenbank auswählt welche gar nicht passt. Gibt es eine einfache Möglichkeit bei LinqToSQL eine gegebene Datenbank gegen das erwartetet Datenbankschema zu prüfen.

Beim guten alten ADO hab ich das immer manuell gemacht, also jeweils die vorhandenen Tabellen abgefragt und geprüft um dann die benötigten Spalten abzufragen und zu prüfen. Ich hoffe eigentlich das Linq da etwas komfortabler ist - leider konnte ich bisher nichts passendes finden.

Weiß da jemand einen Tip?

Viele Grüße

Ralf

02.02.2012 - 22:05 Uhr

Hallo hinrich, hallo herbivore,

ich muss euch inzwischen beipflichten und wie bereits gesagt werde ich zweigleisig fahren: In einem ersten Schritt kann der Nutzer nur einen einfachen String angeben und bestimmen ob es ein Equals-, StartWith-, EndWith- oder Contains-vergleich wird.
Später wird dem User auch die Möglichkeit zu RegEx-Vergleichen gegeben - damit kann man dann wirklich alles abprüfen was man will.

Danke für den Input!!!

Ralf

02.02.2012 - 15:41 Uhr

Hmm, hab jetzt noch mit nem SQL-Like-statement rumgespielt, welches ich über Umwege hätte nutzen können, aber das bringt mir eigentlich auch nur ein StartsWith, EndsWith und ein Contains.

So wie es aussieht werd ich dem User einen einfachen Vergleich bieten der eben ein Equals, StartsWith, EndsWith und ein Contains machen kann. Zusätzlich dann ein Regexvergleich für die 'PowerUser' - Tutorials gibt's schließlich genug.

Vielleicht hat ja noch jemand eine bessere Idee?

02.02.2012 - 13:52 Uhr

Hi!

Ich suche nach einer einfachen Möglichkeit einen beliebigen String gegen ein Muster zu prüfen und zu validieren. Normalerweise würde ich hier RegEx nutzen allerdings bin es nicht ich der die Maske festlegen soll sondern ein 'einfacher' Benutzer der zu 99%iger Wahrscheinlichkeit nichts mit RegEx anfangen kann.

Meine erste Idee wäre gewesen den MaskedTextProvider von .Net zu nutzen. Der wäre einfach zu verstehen und würde alle einfachen Sachen abdecken - allerdings musste ich feststellen das dieser einfach nicht für das prüfen von fertigen Strings sondern von Eingaben gemacht ist - zumindest bekomme ich manche Strings damit nicht richtig validiert. 😕

Hat jemand von euch eine Idee wie ich so eine Prüfmaske anwenderfreundlich realisieren kann?

Viele Grüße

Ralf

25.10.2011 - 10:31 Uhr

Hi Alf Ator!

Super Hinweis!!!! Hab noch nie zuvor einen Timer verwendet und das Ding ist echt genial für diese Aufgabenstellung!

Hab zwar anfangs etwas gegrübelt und musste erst mal ein vernünftiges Tutorial und die MSDN angucken, aber jetzt kann ich mein Problem damit richtig fein lösen...

Danke!

Ralf

25.10.2011 - 09:27 Uhr

Hallo,

ich muss für eine touchfähige Oberfläche dem Benutzer eine Möglichkeit schaffen einen Wert bequem zu erhöhen oder zu erniedrigen. Das NumericUpDown halte ich für nicht geeignet, da selbst bei Verwendung einer größeren Schriftgröße die Buttons nicht sehr schön mitskalieren und für touch umständlich sind. Daher würde ich eben einfach eine Textbox mit zwei Buttons nehmen.

Das einfache Erhöhen bzw. Erniedrigen der Werte ist kein Problem allerdings würde ich es dem Benutzer gern ermöglichen einen Button gedrückt zu halten so dass die Werte dann schneller incrementiert werden.
Hab hierzu leider nicht wirklich was gefunden, hat jemand von euch einen schönen und einfachen Ansatz oder einen Tip wie man das elegant lösen kann?

Viele Grüße

Ralf

05.04.2011 - 17:24 Uhr

Hallo Th96! Hallo inflames2K!

Gerade als ich nach dem EnsureVisible() googeln wollte, da es diese Methode nur fuer das ListView nicht aber fuer die ListBox gibt, bin ich dabei ueber das TopIndex-Property gestolpert...

Das ist genau das was ich gesucht hab!

Vielen Dank!

05.04.2011 - 16:31 Uhr

Hallo!

Ich tue mich schwer mein Problem in Worte zu fassen, aber ich hoffe ich bekomme es mit einem Beispiel hin:

Ich habe eine Liste mit 50 Items, meine zugehoerige Listbox ist aber nur gross genug um 10 Items auf einmal anzuzeigen. Wenn ich nun programmatisch das Item Nr. 15 auswaehle so scrollt die Listbox automatisch so dass das oberste Item in der Anzeige Nr 5 ist und das unterste die Nr 15 welche dann auch selektiert ist.

Ich haette es gerne so dass das oberste Item der ListBox in dem obigen Fall die Nr 10 und das unterste die Nr 20 ist. Somit waere das ausgewaehlte Item 15 genau in der Mitte der Anzeige.
Laesst sich sowas mit einfachen Bordmitteln realisieren? Ein Stichwort genuegt - ich wusste nur nicht nach was ich in diesem Fall googlen soll...

Viele Gruesse

Ralf

29.03.2011 - 20:19 Uhr

Hallo herbivore!

Ich haette erwaehnen sollen dass ich diesen Thread bereits entdeckt hatte und daher nach einer 'einfachen' Alternative suche.

Irgendwie hatte ich die Hoffnung dass jemand seit 2006 etwas eleganteres gefunden haette - naja, dann muss es eben so gehen.

Sorry, dass naechste Mal werde ich die Frage etwas genauer stellen.

Vielleicht hat ja tatsaechlich noch jemand eine andere Idee?

Viele Gruesse

Ralf

29.03.2011 - 18:39 Uhr

Hi!

Ich habe das Problem, dass ich bei den UserControls meiner Anwendung den Fokus immer auf ein bestimmtes Steuerelement legen moechte nachdem es angezeigt wird.

Der Load-Event reicht scheinbar in meinem Fall nicht aus. Bei Forms gibt es fuer meine Problematik den Shown-Event, beim UserControl allerdings nicht. Kennt jemand eine einfache Alternative?

Viele Gruesse

Ralf

17.02.2011 - 19:16 Uhr

Ich vergass zu erwaehnen das Localizable auf 'false' und Language auf 'Default' steht... das sollte es also eigentlich nicht sein.

Egal - ich werd mal schauen ob die Linie das Form anpasst ueberhaupt noch Sinn macht. Vielleicht koennte ich dann so das Problem loesen...

Danke auf jeden Fall mal fuer die Hinweise - das hat mir schon viel geholfen!

17.02.2011 - 17:10 Uhr

Ja schon, aber ich hab das Form inzwischen einige mal im Designer so angepasst dass es dort auch vernuenftig aussieht.
So wie es aussieht wird dann aber beim naechsten Oeffnen des Forms im Designer wieder alles verschoben - obwohl ja der Code im OnLoad-Eventhandler zur Designzeit nicht ausgefuehrt werden duerfte...

17.02.2011 - 16:45 Uhr

Hi FZelle!

Ich muss zugeben ich bin etwas schokiert: Option 1 hat zugetroffen obwohl ich felsenfest ueberzeugt war dass hier nichts gemacht wird.

Tatsaechlich befindet sich im OnLoad des Forms eine Zeile bei der die groesse des Forms angepasst wird. Kann es auch vorkommen dass diese Zeile im Designer unter umstaenden mal ausgefuert wird??? - urspruenglich muss ja mal alles gepasst haben...

VG

Ralf

17.02.2011 - 16:01 Uhr

Hallo!

Ich habe hier ein etwas merkwuerdiges Problem. Ich arbeite mit VS2008 (+TeamFoundationServer fuer Quellcodeverwaltung) in einem WinForm-Projekt. Hierbei habe ich ein paar Dialogfenster die mir im Designer falsch dargestellt werden wenn ich diese morgens zum ersten mal oeffne - es fehlen ca. 30 Pixel in der Breite und in der Laenge. Die Usercontrols innerhalb des Forms werden dann vom Rand abgeschnitten - auch wenn diese evtl. durch die Anchor-Einstellung mit verschoben werden muessten.
Ich habe das Problem nun schon einige Zeit, habe ab und an danach gegoogelt aber nie was dazu gefunden. Letztlich habe ich einfach immer das Form wieder groesser gemacht, alles wieder an die richtige Position gerueckt und dann einfach weiter gearbeitet, aber langfristig ist das echt keine Loesung.
Als das Problem heute wieder bei einem der betroffenen Forms auftrat hab ich mal genauer nachgeschaut und musste feststellen, dass es zur Laufzeit eigentlich richtig angezeigt wird lediglich im Designer wird es scheinbar falsch angezeigt. Selbst wenn ich die UserControls etwas verschiebe oder das Form etwas kleiner oder groesser mache - DesignTime und RunTime haben unterschiedliche Groessen!

Hat jemand von euch mal von einem aehnlichen Problem gehoert?

Viele Gruesse

Ralf

12.01.2011 - 15:36 Uhr

Hi Tom!

Du hast Recht: Normalerweise haette ich das auch gemacht - das Plugin ist aber nicht all zu teuer und es ist einfach nur eine persoenliche Vorliebe alles beieinander zu haben...

Hast mich erwischt! 😉

VG

Ralf

11.01.2011 - 21:31 Uhr

Hmm, habe leider auch keine Loesung gefunden. Sieht so aus als ob ich entweder noch ne zusaetzliche Lizenz kaufe oder die Fehlermeldung einfach ueber mich ergehen lassen muss...

Danke fuer eure Gedanken zu dem Thema!

VG

Ralf

11.01.2011 - 16:15 Uhr

Hi!

Meine VS2008-Projektmappe/Solution ist ueber einen TFS2008 verwaltet. Momentan arbeitet neben mir noch ein zweiter Entwickler an meinem Projekt mit.
Wir haben nun die Aufgaben etwas konkreter verteilt und meinem Kollegen ist die Setuperstellung zugefallen. Wir haben uns gegen das standard VS-Setupprojekt entschieden und eine Drittsoftware gekauft, welche ueber ein Plugin ein eigenes Setupprojekt erlaubt.
Da nur mein Kollege an den Setups arbeiten wird haben wir nur eine Lizenz gekauft, so dass auch nur sein VS das Setupprojekt des Drittanbieter oeffnen kann... und da ist der Haken:
Jedesmal wenn ich die Projektmappe nun oeffne bekomme ich ne Fehlermeldung dass das Projekt xyz unbekannt ist und mit dieser Version von VS nicht geoeffnet werden kann. Zwar kann ich danach ganz normal arbeiten, aber unschoen ist es allemal...

Gibt es eine Moeglichkeit VS so einzustellen dass es dieses Projekt bei mir nicht laedt waehrend mein Kollege nach wie vor damit arbeiten kann?

VG

Ralf

13.12.2010 - 17:29 Uhr

War ja klar dass Bayern und Schwaben nicht am gleichen Strang ziehen koennen 😉

Interessante Info auf jeden Fall!

13.12.2010 - 16:57 Uhr

Ist BW tasaechlich eine 'Java Hochburg'? Ich hab ehrlich gesagt noch nie den Vergleich zu anderen Bundeslaendern gemacht - das wuerde natuerlich einiges erklaeren...

Wie kommst du darauf?

13.12.2010 - 16:25 Uhr

.NET Entwickler sind gesucht... so wie nie zuvor...

Naja, das mit dem 'wie nie zuvor' muss ich wohl so stehen lassen, aber wenn ich die aktuellen Stellenangebote so ansehe dann muss ich doch feststellen dass die Anzahl der .Net-Stellen nicht ganz sooo ueppig sind im Vergleich zu Java und dem klassischen C/C++. Wenn man dann bedenkt dass ich eben doch oertlich gebunden bin (ich will nicht aus den USA zureuck kommen nur um gleich wieder umzuziehen) und einem auch nicht gleich jede Stelle so richtig zusagt bleibt unterm Strich wirklich nicht viel uebrig.

Ich bin allerdings froh dass ich dieses mal recht viel Zeit zum Suchen habe da ich fruehestens Anfang Juli wieder in DE anfangen kann.

Vielleicht sollte ich auch Java gegenueber mehr offen sein... mal sehen.

13.12.2010 - 15:39 Uhr

Hmm, ich denke bei meinem alten Arbeitgeber sollte ich zumindest irgendwas zwischen 50K bis 55K raushandeln koennen - mehr halte ich hier nicht fuer realistisch.

Falls sich sonst irgenwo Chancen ergeben werde ich wohl versuchen zwischen 55K bis 60K raus zu handeln - immerhin haette ich immernoch einen Plan B falls sie nicht mitziehen.

Interessant werden ja wohl auch die Rahmenbedingungen sein (allem voran die Arbeitszeiten und Urlaubsanspruch) da wirds dann erst richtig bunt...

Ich denk genau die Zahlen werd ich mir mal vornehmen und alles weitere wird sich dann ergeben. Bleibt nur zu hoffen das die Wirtschaft in DE bis dahin wieder anzieht.

13.12.2010 - 14:24 Uhr

Hallo Khalid! Hallo herbivore!

Es stimmt die Frage wurde hier schon mal gestellt, allerdings 2007 von User 1nf1n1ty aus Niedersachsen... das fand ich halt nicht soo passend. Was aktuelleres konnte ich nicht finden.

Gehaltsspiegel hab ich natuerlich auch schon mal angesehen, wobei ich jedoch nicht direkt an heise gedacht habe - hier war das ganze nochmal etwas spezifischer als anderenorts. Allerdings haette ich es hier auch gerne nochmal etwas genauer gehabt in Bezug auf die Fachrichtung des Softwareentwicklers.

Naja, letztlich denk ich aufgrund der Gehaltsspiegel, dass wohl irgendwass zwischen 50K bis 70K Euro realistisch sind, wobei ich nicht glaube dass ich die 60er Grenze schaffen werde. Mal sehen...

Mal sehen ob sich hier der eine oder andere C#-Entwickler noch zu dem Thema aeussert - haette mich halt interessiert 😉

VG

Ralf

13.12.2010 - 03:43 Uhr

Hi an alle!

Hätte da mal ein etwas kritisches Thema: Ich bin momentan noch als Entwickler in den USA werde aber Mitte nächsten Jahres wieder nach DE zurück kehren und dann wieder dort arbeiten. Mein bisheriger Arbeitgeber wird mir auch in Deutschland wieder Stelle anbieten, allerdings denke ich es ist auf jeden Fall mal interessant zu schauen was andere Firmen so bieten, daher will ich langsam mal Anfangen mich um Bewerbungen zu kümmern. Ich habe noch nie wirklich um mein Gehalt gepokert, aber diesesmal sind die Voraussetzungen glaub ich nicht schlecht, daher wollte ich euch mal fragen was für ein Bruttojahresgehalt ihr für realistisch haltet.

Hier die Eckdaten:
-29 Jahre
-FH Diplom in Witschaftsinformatik
-5 Jahre Berufserfahrung (davon 1,5 in den USA)
-Mein Schwerpunkt liegt in der Entwicklung von Desktopanwendungen mit C#

Mein aktuelles Projekt hier ist die Weiterentwicklung einer Standardsoftware die von meiner Firma international an Kunden verkauft wird. Bis vor kurzem war das noch ein One-man-job. Vor vier Wochen habe ich nun endlich einen neuen Kollegen als Unterstützung bekommen, welcher auch mein Nachfolger sein wird - von ihm Abgesehen hatte ich noch nie Personalverantwortung. Ich bekomme hier etwas mehr als 70.000 Dollar brutto pro Jahr (allerdings ist das schwer mit einem deutschen Gehalt zu vergleichen)

Zurück in DE werde ich versuchen in ein Mittelstands- oder Großunternehmen in Baden-Württemberg gehen.

Was meint ihr: Was wäre eine realistische Gehaltsvorstellung?

VG

Ralf

10.12.2010 - 19:56 Uhr

Hallo Daniel!

Den Zeta Ressource Editor nutze ich bereits fuer mich (Englisch => Deutsch) und ich bin heilfroh dass es ihn gibt. Trotzdem bin ich nicht ganz gluecklich mit dieser Loesung:

Die Uebersetzungsabteilung meiner Firma welche fuer die Hauptsprachen zustaendig ist, 'darf' nur eigene Software nutzen, das waere neben einem speziellen XML-Editor eben Excel und Notepad (Wieder erwarten hat das aber bisher gut geklappt hier). All den anderen Ubersetzern die das ganze auf 'freiwilliger' Basis machen weil sie sonst keine lokalisierte Version bekommen habe ich jedoch auch die Zeta-Loesung empfohlen. Was mir hier aber nicht gefaellt: beim Zeta Ressourcen Editor wird die Kommentarspalte aus den Resx-Dateien nicht angezeigt und wie sich gezeigt hat ist die manchmal wirklich wichtig. Zusaetzlcih empfinde ich die Bedienung dieses Tools nicht wirklich als einfach, aber da steh ich mir viellecht auch selber im Weg.

Das Hauptproblem hast du aber selber schon genannt: Die Verwaltung von Aenderungen wird nicht behandelt, denn das geben die resx-Dateien ja von sich aus schon nicht her.

VG Ralf

10.12.2010 - 19:12 Uhr

Hi!

Meine Software unterstuetzt nun schon seit einigen Monaten unterschiedliche Sprachen (DE, EN, FR, ES, IT und HU). Ich habe mich Anfangs dafuer entschieden die Sprachtexte nicht in einfache Textdateien auszulagern, sondern den von Microsoft vorgegebenen Weg ueber Ressourcendateien und Satteliteassemblies zu gehen da ich das fuer den besseren Weg hielt und da es durch Mircosoft schon quasi in VS eingebaut ist hat es ja auch was von Best Practise.
Nachdem ich inzwischen erste Uebersetzungsrunden hinter mich gebracht habe musste ich feststellen, dass die Loesung mit den Ressourcen-Dateien auch nicht ganz das Gelbe vom Ei ist. Zwar ist die Entwicklung hier Recht einfach: Ich muss nur eben den neuen Text im XML-Editor von VS anlegen und schon ist er als statische Property ueber den Ressourcenmanager verfuegbar, aber wenns ans Uebersetzen geht kommen nun einige Probleme dazu die ich vorher nicht bedacht habe:

Die Uebersetzer tun sich mit dem XML-Format schwer, vorallem diejenigen die nicht professionell uebersetzen, sondern eigentlich Techniker aus den entsprechenden Laendern sind - denen waere halt das gute alte Excel oder einfach nur die Textdatei lieber.

Die resx-Dateien muessen erst compiliert werden bevor die Applikation sie verwenden kann (gut - das hat auch Vorteile und stoert mich nicht zu arg)

Das groesste Problem ist meiner Meinung nach aber das Verwalten der Texte wenn erst einmal uebersetzt wurde: Wie kann ich dem Uebersetzer eine Datei schicken die wirklich nur die Texte enthaelt die neu hinzugekommen sind. Noch viel wichtiger: Wie erkennt der Uebersetzer das alte Texte geandert wurden und evtl. eine andere Bedeutung haben?

Ich bin gerade schwer am ueberlegen ob die Texte nicht in einer Datenbank verwaltet werden sollten: Das wuerde einem die Moeglichkeit geben die Texte einfach gegeneinander abgleichen zu koennen. Man koennte Aenderungsflags einbauen welche anzeigen ob ein Text seit der letzten Uebersetzung geaendert wurde. Man koennte nur die Texte die Uebersetzt werden muessen in eine Datei seiner Wahl exportieren und sie anschliessend wieder aus diesen wieder importieren. Ich denke wenn man das Konzept richtig durchdenkt muesste man nichtmal die Loesung mit den Ressourcendateien aufgeben...

Hat jemand von euch mit dieser Problematik schon Erfahrungen? Wie werden in grossen Softwareprojekten die Texte verwaltet? Ich will das Rad eigentlich nicht neu erfinden...

VG

Ralf