Blog Home  Home RSS 2.0 Atom 1.0 CDF  
.NET (Compact) Framework - Thir Party Tools
Haggy's technischer BLog
 
 Wednesday, October 01, 2008
In den letzten Tagen häufen sich die Anfrage nach dem BE Gantt.

Das freut mich sehr und ich habe auch sehr gute Nachrichten. In absehbarer Zeit wird das BE Gantt verfügbar sein.
Bei einzelnen Kunden ist es bereits im Echteinsatz und deren Erfahrungswerte möchte ich noch abwarten.

Zuästzlich wird es demnächst einen OutlookStyle Monatskalender geben. Auch dafür folgen demnächst weitere Infos.

Also schonmal viel Spaß bei der Vorfreude :)

10/1/2008 4:52:59 PM (W. Europe Standard Time, UTC+01:00)  #    Comments [0]    | BE Components | BE Gantt | Thir Party Tools  | 
 Sunday, June 08, 2008
Der Type Explorer hat nun , wie angekündigt, inkl. SourceCode sein Zuhause bei Codeplex gefunden.

s. http://www.codeplex.com/TypeExplorer

Geplanst sind als nächstes u.a. Integration in den Reflector sowie eine WPF GUI.


Feature Wünsche werden gerne entgegen genommen
6/8/2008 6:39:07 PM (W. Europe Standard Time, UTC+01:00)  #    Comments [0]    | .NET Allgemein | BE Components | C# | Controls | Free Tools | Releases | Thir Party Tools | Tutorials | WinForm | WPF  | 
 Thursday, June 05, 2008
Durch einen Tipp von Neno Loje wurde ich auf den StyleCop Aufmerksam s. http://code.msdn.microsoft.com/sourceanalysis/

Dieses Tool analysiert Code auf der Source ebene und kann somit prüfen ob der geschriebene Code sich in einer gültigen Sturktur (z.bsp. Coding Konventionen) befindet.


Nochmal danke an Neno für den guten Tipp !
6/5/2008 7:51:19 AM (W. Europe Standard Time, UTC+01:00)  #    Comments [0]    | .NET Allgemein | .NET Framework 3.0 | C# | Free Tools | Releases | Softwarequalität | Thir Party Tools  | 
 Sunday, May 11, 2008
Hier eine kurze Info zum BE Typetree und wie es damit weiter gehen wird.

Da die nachfrage an diesem kostenlosen Tool sehr groß war, habe ich mich entschlossen dieses Tool bei Codeplex online zu stellen.

So hat auch jeder die Chance selbst etwas beitragen zu können.

Indiesem Zuge werde ich das Tool auch zu "Type Explorer" umbennen.
Ebenfalls werde ich zusehen dass ich das Extensibility Interface des Relfectors implementiere so dass man den Typeexplorer auch von dort aus verwenden kann.

Feedback welcome ! :)

CodePlex URL wird noch folgen.

5/11/2008 12:14:05 PM (W. Europe Standard Time, UTC+01:00)  #    Comments [0]    | .NET Allgemein | BE Components | Free Tools | Thir Party Tools  | 
 Friday, April 18, 2008
Der Type tree näher sich einer ersten Beta version und schon hat man Feature wünsche an mich heran getragen ;)

- Suchen von Typen nach ihrem Name (!= FullName)
- Merken der letzten Einstellungen
- Filter über Namespaces
-...

Werde ich die Tage auch noch implementieren und dann gibts die erste Beta. Wer interesse hat kann sich gern bei mir via ICQ oder Mail melden.

Hier noch einen kurzen Screencast

BE Type Tree Demo.wmv (1,12 MB)
4/18/2008 12:19:11 PM (W. Europe Standard Time, UTC+01:00)  #    Comments [0]    | .NET Allgemein | BE Components | Controls | Free Tools | Thir Party Tools  | 
 Sunday, November 04, 2007

Hier noch ein paar erste Screenshorts der BE des BEDayAgendaViews.
Das Agendaview dient dem darstellen von Terminen in einer Agendaform für einen Tag. Auch hier gilt, wie bei jedem anderne Control, dass Sämtliche visuelle Darstellungen, Datum & String formatierungen, frei einstellbar sind.

Da die BE Component Sammlung nun schon einige Componenten beinhaltet wäre nun auch wieder Platz für ein paar weiter Betatester.

Bei Interesse einfach hier oder bei mir melden


11/4/2007 6:58:55 PM (W. Europe Standard Time, UTC+01:00)  #    Comments [0]    | .NET Allgemein | BE Components | C# | Thir Party Tools  | 
Der BE MonthCalendar hat nun wieder einige neue Features.
So gibt es ein BeforeDayDraw Event, durch welches man nun direkt  das Zeichen verhalten des Controls beeinflussen kann.
Ebenfalls kann man nun auch Wahlweise sich Kalenderwochen anzeigen lassen.

Diese Können entweder über die Culture oder über einen Zu dem deutschen Kalendersystem passend berechnet werden.
Wo hier genau der Unterschied liegt kann man in diesen Positing von mir lesen: Iso Calendar Weeks


Die Testversionen an die Betatester in den nächsten Tagen raus
11/4/2007 3:31:39 PM (W. Europe Standard Time, UTC+01:00)  #    Comments [0]    | BE Components | Bugs | Thir Party Tools | Updates & SP  | 
 Saturday, October 27, 2007
Der BE MonthCalendar unterstützt nun sämtlcihe BE Styling Optionen für alle UI Elemente.
So kann man den einzelnen Tagen, selektierten Tagen oder z.bsp. dem "Heute"  z.bsp. Farbverläufe geben.
s.  Screenshot




10/27/2007 7:23:55 AM (W. Europe Standard Time, UTC+01:00)  #    Comments [0]    | BE Components | Controls | Thir Party Tools | Updates & SP  | 
 Sunday, October 21, 2007

Die BE Component Sammlung wurde um ein weiteres Control vervollständigt.  

Absofort gibt es den voll customizeable BE Month Calendar. Dieser ist ein pure .NET 2.0 Custom Control und bietet die Möglichkeit praktisch jedes UIElement in seiner Erscheinung anpassen zu können. Mehr Screenshots und Beispiele folgen demnächst.

Die Formatierung der Datumsangaben orientiert sich im standard an der aktuellen Culture ist aber über ein Property überschreibbar
Als nächster Schrit sind hier die Anzeige der Kalenderwochengeplant.

Feedback & Featurewünsche Welcome!
10/21/2007 7:31:04 AM (W. Europe Standard Time, UTC+01:00)  #    Comments [0]   .NET Allgemein | BE Components | Thir Party Tools  | 
 Tuesday, October 09, 2007
In der dotnetPro 10/2007 gibt es einen, wie ich finde, sehr guten Artikel zum Thema "Aspekorientiertes Programmieren". s. http://dotnetpro.de/articles/onlinearticle2442.aspx

U.a. wird dort das Tool "postSharp" vorgestellt. Man kann damit einige sehr interessante Dinge erledigen. Z.bsp. werden in Attributen die sich von Klassen des postsharp ableiten virtuell Methoden zur Verfügung gestellt ,welche es erlauben die Methoden ausführung im Attribut selbst zu verhindern oder Code vor bzw. nach einer Methode laufen zu lassen.

Leider funktioniert postsharp aber nicht in Projekten die mit einem Passwort gesigned sind.

Auch der Entwickler von Postsharp sieht momentan keine Lösung für diese Problem.

Wer aber mit dieser einschränkung leben kann , dem kann ich nur postsharp empfehlen :) s. http://www.postsharp.org/

10/9/2007 6:57:31 AM (W. Europe Standard Time, UTC+01:00)  #    Comments [0]    | C# | Thir Party Tools  | 
 Sunday, September 02, 2007
Ich freue mich für mitte nächster Woche das nächste BE Gantt Update ankündigen zu können.
Es hat sich wieder einaml einiges getan. Ein Überblick folgt die nächsten Tage.

Falls es noch weitere Feature Wünsche für die aktuelle Beta gibt, können diese gerne na info@it-design.biz gemailt werden und ich werde sehen was ich davon alles zeitnah umsetzen kann.

9/2/2007 8:01:42 AM (W. Europe Standard Time, UTC+01:00)  #    Comments [0]    | .NET Allgemein | BE Components | BE Gantt | Thir Party Tools  | 
 Monday, August 13, 2007
Soeben habe ich die nächste Version des BE Gantts fertigstellen können
hier eine kurze Übersicht der wichtigsten Änderungen


Neu:
Events
- BarRightClick Event
- BarMoved Event
- BarSized Event
- BarAdded Event

- Methoden & Properties
- BETimeBarInfo.FixedType Gibt an wie eine bar gesperrt wird falls Bar.IsBarFixed = true. So kann z.bsp. nur der Linke oder rechte rand einer bar gesperrt werden
- RemoveSingleBar - Methode zum entfernen einer TimeBar
- ClearBarsFromItem - Methode zum entfernen aller TimeBars eines Items
- bool InnerGantt.AllowBarDrag - Gibt an ob Bars via Drag & Drop Operationen verändert werden dürfen
- bool LeftColumnVisible - Gibt an ob die linke Seite des Gantt Controls (Liste) sichtbar ist
- NewDefaultTimeBar & CreateDefaultTimeBar zum erzeugen von BArs mti den Einstellungen des Properties DefaulTimeBarVisuals
Allgemein
- ScaleDisplayTimeOnFarestBar - Methdode wenn ausgeführt passt das GanttChar seinen Anzeigebreich soweit an, dass mindestens das späteste Ender einer Timbar noch im sichtbaren beriech liegt
- ScrollToDateTime Methode, scrollt im Gantt Control zueinem im Anzeige Zeitraum vorhandenen DateTime
- Bitmap Cache für Seperators
- Items sind über einen Click auf dem linken Header Control sortierbar
- BETimeBarInfo hat nun ein ContextMenu Property, dieses ContextMenu wird bei einem RightClick nach dem BarRightclick Event angezeigt
- BugFix beim vertikalen scrollen wurden Rows nicht komplett dargestellt
- Optimierungen im aufbau der Anzeige
- Headeranzeige optimiert


Am linken Rad habe ich mal ein Diagram der Properties einer TimeBar eingefügt. Dies sind alle für die TimeBars dynamisch definierbar.

Ich plane in der nächsten Version die Dokumentation der Bars für Intellisense einzubauen und vielleciuht auch eine kleine vorabhilfe mit Samples zu generieren
8/13/2007 6:36:02 PM (W. Europe Standard Time, UTC+01:00)  #    Comments [0]    | .NET Allgemein | BE Components | BE Gantt | Thir Party Tools  | 
 Thursday, August 09, 2007












So nun ist es bald soweit, die erste PreBeta Version steht bald zur Verfügung und dann darf bei den Betatesten fleißig getestet werden.

Inzwischen kann man nun auch den Headerbereich farblich beeinflussen und auch für die einzelnen Elemente Schriftarten wählen. Wochenenden kann man nun auch eine eigene Farbe geben. In einem der nächsten Schritte soll es auch möglcih sein Freidefinierbare bereiche des Controls ( also DateTime grenzen) beliebig einzufärben um so z.Bsp. bestimmte phasen eines Zeitraums abbilden zu können

Datumswerte werden per standard passend zur aktuellen CultureGeneriert können aber auch abweichend definiert werden
Alle Properties habe ich unter der Kategorie "Gantt Settings" zusammen gefasst. s. Screenshot links.

Jeder Elementtype (Item, Header,...) hat einen eigenen Visuals knoten an dem man Dinge wie Backcolor, Font, Datumsformat abweichend vom Standard einstellen kann.

Denke so hat man die größe Flexibilität das control seinen Bedürfnissen anpassen zu können.

So wie es aussieht geht heute abend oder morgen früh die Beta an die Tester raus.

in dem Sinn : Schonmal viel Spaß beim Testen !


8/9/2007 11:26:25 AM (W. Europe Standard Time, UTC+01:00)  #    Comments [0]    | .NET Allgemein | BE Components | BE Gantt | Releases | System.Drawing | Thir Party Tools | WinForm  | 
 Monday, August 06, 2007
Es hat sich wieder einiges am Gantt Control getan.

Der Schwerpunkt der Entwicklung lag auf dem Zugänglichen machen interner Events. So kann man z.bsp. Eingreifen wenn eine Bar oder ein Item für das Zeichnen vorgeladen werden oder man kann reagieren wenn sich der sichtbare Bereich des Gantts ändert.

 So ist es möglich Daten on Demand nachzuladen.

Der andere Schwerpunkt lag im Verbessern der Useability, so kann man nun auch bei einzelnen Zeilen Hintergrundfarbe etc. bestimmen.

Hier mal ein Screenshot mit Farbigen Hintergrund Zeile



Weitehrin gibt es inzwischen auch definierbare Tooltips je bar.

Ein nettes kleines Feature, dass man im mom leider nicht auf dem Screenshot sieht sind kleine hilfslinien die in der Zeitleiste angezeigt werden sobald man eine Bar via Mouse & Drag verschiebt oder Sized ,so dass man immer sieht wie weit die Bar ausgedeht ist.

Ansonsten habe ich noch 2 Controls in das GanttChart unten reingepackt, die es ermöglcihen auf der Zeitachse zu zoomen. Sprich den Abstand zwischen den Stunden  btw. Tage einzustellen.

In meinem nächsten Posting folgen dann Beispielcodes wie das Gantt Control mit Daten beladen wird.
8/6/2007 4:55:52 PM (W. Europe Standard Time, UTC+01:00)  #    Comments [0]    | .NET Allgemein | BE Gantt | C# | Controls | GUI | Releases | System.Drawing | Thir Party Tools | Updates & SP | WinForm  | 
 Tuesday, July 31, 2007
Hier folgt ein kurzes Video das zeigt wie man Bars im GanttControl anlegen und verschieben
bzw. sizen kann.

Aktuell fehlen noch einige einstellungen für eine gute Optik, wird aber in den nächsten Versionen folgen.

Feedback welcome!

gantt.wmv (128.7 KB)
7/31/2007 6:28:33 PM (W. Europe Standard Time, UTC+01:00)  #    Comments [0]    | .NET Allgemein | BE Components | BE Gantt | C# | Controls | System.Drawing | Thir Party Tools  | 
 Monday, July 30, 2007
Momentan forciere ich etwas das Gantt Projekt, deswegen bin heute mal wieder einen ganzen Schritt vorwärts gekommen.

Es gibt nun auf der linken Seite des Controls eine Ansicht die der Identifizierung einer Zeile dient (s. Screenshot).
Auch können Bars nun via intuitivem Drag & Drop verschoben werden. Als nächstes Folgt noch das sizen und neu anlegen via Drag & Drop.

Auch habe ich weitere Optimierungen in das Ganttchart eingebaut, welche die Performance noch weiter verbessern konnte.

Als nächste Punkte habe ich mir auch noch das einstellen der Datumsanzeige stehen. Momentan wird immer das ShortDate passend zur aktuellen Culture verwendet, hier wird der User demnächst abweichende Masken definieren können.

Auch werde ich nach aussen weitere einfache Möglichkeiten geben, das Design beeinflussen zu können.

Hier nun der Screenshot

7/30/2007 9:53:07 PM (W. Europe Standard Time, UTC+01:00)  #    Comments [0]    | .NET Allgemein | BE Components | BE Gantt | Controls | GUI | Releases | System.Drawing | Thir Party Tools | Updates & SP | WinForm  | 
 Sunday, July 29, 2007
Im moment entwickle ich an einer eigenen GanttCharting Componente.

Hierfür suche ich noch BetaTester.
Die Komponente ist in 100%  managed .NET 2.0 C# Code geschrieben.

Hier mal ein kleiner Screenshot:




Der Schwerpunkt der Komponente liegt in der anpassbarkeit. So kann mal das Erscheinungsbild praktisch jedes UI Elementes über Properties einstellen.

So kann man z.bps. den Bars einen Farbverlauf geben, Pre , Post und Inner images definieren.
Das Control läuft auch noch mit einigen hunder / tausend bars sehr performant


Wichtig wären mir Bugreports sowie hinweise auf Useability schwächen.
7/29/2007 5:49:57 PM (W. Europe Standard Time, UTC+01:00)  #    Comments [0]    | .NET Allgemein | BE Components | BE Gantt | C# | GUI | Releases | Thir Party Tools | Updates & SP | WinForm  | 
 Tuesday, May 29, 2007
Seit ein paar Tagen beschäftige ich mich mit dem TX TextControl in FoxPro.
Dabei musste ich ein paar wirklich "nervtötende" Bugs hinnehmen.

Z.bsp. ist das Control nicht auf einem FoxPro Pageframe lauffähig.
Wenn das Control z.bsp. auf der 2. Page liegt kommt es unter bestimmten Umständen dazu  dass das Control auf allen pages (Also auch !=2) sichtbar ist. Sozusagen durchscheint.

Auf meine Anfrage zum Support wurde mir bestätigt dass das Problem bei FoxPro / Com liegt und nicht behoben werden kann.

Als Workaraound hilft es das control auszublenden wenn das PageFrame auf dem das Control liegt, nicht sichtbar ist. Auch das ist aber nicht wirklich schön...


Ein weiteres Problem ist, dass das Control sich u.U. nicht so verhält wie man es erwartet. Wir setzen das Control als HTML Editor ein. Prinzipiel funktioniert das auch sehr gut. Funktionalitäten wie Export nach PDF etc ist toll.

Allerdings bekommt man Probleme wenn man folgndes durchführt:

  1. Text in dem Control schreiben & Formatieren
  2. Text in eine Varibale laden
  3. Text von der Variablen in das Control laden
  4. Text wieder aus dem Contorl laden in eine Variable laden
dann ist der HTML Code von 4. nicht mehr der Code den man bei 2. bekommen hat. Gerade Programme die mit OldVal prüfen ob isch ein Textgeändert haben bekommen dann probleme, da der Text sich ja "immer" ändert.

Auch dieses Problem wurde mir bestätigt und als nicht behebbar deklariert. Der Knackpunkt ist dass das Contorl intern ja ein eigenes Format != HTML hat.
Dies hat zurfolge dass jedes mal wenn man HTML abruft man einen HTML Export auslöst. Dieser muss nicht zwangsläufig das gleiche gernerieren wie das was das Control reinbekommen hat.

Man kann sich nur damit helfen das interne Format Wegzuschreiben, man bekommt da ein doublebyte ByteArray zurück. Dummerweise kann man das nicht in FoxPro "normalen" Memos speichern.
Dafür wird dann eine Base64 encodierung benötigt. Allerdings kann man dann wiederum nicht mehr in MEmos nach inhalten suchen, da Base64 keine Klarschrift mehr ist.


Das Umwandeln in Base64 und zurück sieht in FoxPro so aus:

* Abrufen des Textes im intenren Format als ByteArray
lca = thisform.olecontrol1.saveToMemoryBuffer("",3,.f.)

* Base64 Encodieren
lcBase = STRCONV(lca,13)

*... Code zum speichern & Laden in einem MEmo

*Beim laden DEcodieren wir zunächst das Base64 allerdings ist das ergebnis
* ein STring mit steuerzeichen statt eines BinaryArrays Deswgen dann der Binary aufruf
lcplain = CREATEBINARY(STRCONV(lcbase,14))

* Laden des Textes im internen format
thisform.olecontrol1.text =""
thisform.olecontrol1.loadFromMemory(lcPLain,3,.f.)


Falls jemand Lösungen für das HTML "Veränderungs" Problem kennt würde ich mich über Feedback freuen, auch hätte ich gerne Feedback darüber was ihr kennt was sonst noch so an dem Control Probleme bereiten kann

Das Problem dass der HTML string sich ändert tritt logischerweise auch in .NET auf. Das Problem das das Control afu Pageframes durchscheint nur in FoxPro (über Com).

5/29/2007 8:41:06 AM (W. Europe Standard Time, UTC+01:00)  #    Comments [0]    | C# | Thir Party Tools | VFP | Bugs  | 
 Monday, May 28, 2007
Inzwischen gibt es einige brauchbare samples, bei die Möglichkeiten die sich bieten sinnvoll eingesetzt werden.

WPF birgt ja von Natur aus die Gefahr in sich solche Anwendungen zu produzieren die an die ersten privaten Websites im Internet erinnern , Alles blinkt und leuchtet ,..
Richtig genutzt kann die WPF aber dazu beitragen die Useability von Anwendungen auf ein ganz neues Niveau zu bringen.

Hier kann ich nur diese Seite: http://www.vertigo.com/lab.aspx empfehlen mit einigen Beispielen zur WPF.


Insbesonder das FamilyShow Sample Project zeigt wie man mit etwas WPF eine Anwendung gleich viel Ansprechender aussehen lassen kann. Family Show stellt Beziehungen zwischen personen mittels Daten im GEDCOM Format (S. Wikipedia hier )  dar.

Das ganze sieht dann so aus:

 In dem Control kann man u.a.Zoomen und neue Bezugspersonen festlegen, Images je Person anzeigen lassen , Art der Beziehung (Mutter,Bruder,....) definieren usw. ...

Meiner Meinung nach eine Anwendung die zu einigen weiteren Anwendungsmöglichkeiten inspiriert.



Die Beispiele die bei Expression Blend dabei sind zeigen auch ein paar gute Ideen für eine intuitivere GUI wie die aufklappbaren Color Picker (s.u.)





Weitere WPF Samples gibts unter : http://windowsclient.net/downloads/folders/wpfsamples/default.aspx







5/28/2007 8:00:48 AM (W. Europe Standard Time, UTC+01:00)  #    Comments [0]    | .NET Allgemein | .NET Framework 3.0 | C# | Controls | Thir Party Tools | WPF  | 
 Monday, May 21, 2007

Momentan experimentiere ich mit dem System.Drawing bereich des .NET Frameworks.

Als kleines Ergebnis meiner Tests ist ein kleiner selbst gezeichneter Kalender entstanden. Dieser ist vorallem in der Lage KW nach er Iso Norm zu berechnen s. Kommentare im Source

Der Kalender sieht so aus:


Einige Dinge sind auch schon einstellbar. Wie z.bsp. Hintergrund farben, Farbverlauf, CalendarWeekRule,Culture,.....

Noch offen sind Events wie "DateClicked" "HitTest" etc... Je nach Zeit und Laune folgen diese dann demnächst

Verwendung wie immer auf eigene Gefahr!



CalendarDrop.zip (251,57 KB)
5/21/2007 12:02:13 PM (W. Europe Standard Time, UTC+01:00)  #    Comments [2]    | .NET Allgemein | C# | Controls | CultureInfo / Globalization | System.Drawing | Thir Party Tools | Tutorials  | 
 Monday, May 07, 2007
Notgedrungen muss ich mich immer Wieder mit dem berechnen der Kalenderwochen bei diversen Controls auseinander setzen.
Z.bsp. habe ich schon controls gesehen die es schaffen auf eine 55. KW zu kommen. Ganz zu schweigen dass das Berechnen der Kalenderweochen nach deutschen System und der DIN 1355 selten konsequent umgesetzt ist.

Einen einstieg zu Kalenderwochen im Allgemeinen findet man bei Wikipedia s. http://de.wikipedia.org/wiki/Kalenderwoche#Kalenderwoche

Das deutsche Kalender System definiert sich dadurch dass der erste Tag der Woche der Montag ist und die erste KW mit der Woche beginnt, bei der denen mindestens VierTage im neuen Jahr liegen.


Im .NET Framework wird dies durch :

CultureInfo.CurrentCulture.DateTimeFormat.FirstDayOfWeek = DayOfWeek.Monday;
CultureInfo.CurrentCulture.DateTimeFormat.CalendarWeekRule = CalendarWeekRule.FirstFourDayWeek;

definiert. Man sollte erwarten dass wenn man nun GetWeekOfYear(...) aufruft dass die errechneten Kalenderwochen immmer passen. Leider ist das nicht der Fall denn der 29. Dezember 2003 wäre nach der Norm in der 1.KW 2004 und nicht in der 53.KW 2003. Leider ist der Rückgabewert der Funktion 53.....

Dieses Verhalten ist nicht unbedingtein Bug aber auch nicht direkt zu erwarten s. hierzu: http://www.mycsharp.de/wbb2/thread.php?postid=196701#post196701
Abbhilfe schafft hier ein .NET Snippet s. http://dotnet-snippets.de/dns/kalenderwoche-berechnen-SID260.aspx

Ich werde die Tage ein Control Online stellen, welches dann wahlweise mit der .NET Methode oder aber diesen schnippet arbeitet.


5/7/2007 6:55:55 AM (W. Europe Standard Time, UTC+01:00)  #    Comments [1]    | .NET Allgemein | BLogs | C# | Controls | GUI | Thir Party Tools | Tutorials | WinForm | CultureInfo / Globalization  | 
 Thursday, March 22, 2007
Hier nun der Download für das WaitWindow.

Viel Spaß damit und wie immer gilt: Einsatz und Verwenden ausschließlich auf eigene Gefahr

BEWaitClass.zip (5,37 KB)
3/22/2007 10:23:55 AM (W. Europe Standard Time, UTC+01:00)  #    Comments [4]    | .NET Allgemein | Controls | Releases | Thir Party Tools | Tutorials | VFP  | 
 Wednesday, January 03, 2007
In meinen Anwendungen nutzt ich häufig third Party Control wie Controls von Infragistics, usw...
Die Third Party Controls Subclasse ich eigentlcih immer, um möglichst viel einfluss auf deren Verhalten nehmen zu können. Weiterhin liegen auf meinen Forms praktisch nur Container (User Defined Controls).

Nun ,insbeonsdere wenn Toolstrips in Spiel kommen, passiert es , dass Forms sich nur noch dadurch aktivieren lassen, indem man auf Ihre Titelleiste clickt. Einen Click sonst wo auf die Form gibt der Form keinen Focus.

Witziger weise funktioniere naber die Controls. Also ich kann z.bsp. TreeNodes expanden, Buttons clicken usw....  Aber die Form bekommt nicht den Focus und sie kommt nicht nach vorne.

Eine schnelle idee war einfach der Form zu sagen -> Wenn Click dann komm nach vorne.
Funktioniert ja aber nicht weil ich nicht weiß ob und wenn ja welche controls auf der Form liegen. Diesesn Code in sämtliche controls zu hängen ist meinem Empfinden nach mehr als grausam, also suchte ich nach einem passenden event / Methode und bin dabei auf die virtuelle WndProc Methode gestoßen .

Dort kommen nachrichten des Betriebssystems an die form an. Nun habe ich diese Methode überschrieben und festgestellt dass immer wenn ein Form aktiviert werden sollte immer die gleichen Messages feuern.

Nun prüfe ich einfach die eingehende Message und wenn es sich um eine Aktivierung handelt hole ich die Form manuell nach vorne (Source Code s. weiter unten)

Interessant ist auch, dass scih andere dinge ebenfalls damit realisieren lassen. Z.bsp. aktionen wenn man über die Titelleiste der Form fährt etc...

Hier ein Beispielhafter (noch unausgearbetiet Source Code der Forms nach vorne holt)
Insbesondere bei der Message muss ich nochmal schauen, dass ich die wirklcih passende message (glaueb 33 passt nicht 100%) abfrage


protected override void WndProc(ref Message m)

{

    //Erstmal das Standardverhalten ausführen lassen

    base.WndProc(ref m);

    //Eingehende Message Prüfen

    switch (m.Msg)

   {

          //Form soll nach vorne geholt werden

   case 33:

          // Focus setzen und sicherheitshalebr vorholen

           this.Focus();

           this.BringToFront();

           break;

    default:

           //Sonstige Messages

           break;

 

    }

}



Würde mich sehr freuen wenn ihr mir Feedback gibt ob ihr auch solche Probleme kennt und wie eure Lösungen waren.
1/3/2007 8:12:45 PM (W. Europe Standard Time, UTC+01:00)  #    Comments [2]    | .NET Allgemein | Controls | GUI | Thir Party Tools  | 
Copyright © 2010 Haggy. All rights reserved.
DasBlog 'Portal' theme by Johnny Hughes.
Pick a theme: