leistungen  •  referenzen  •  download
Einführung

Im Grunde handelt es sich bei der HexTextBox nur um ein „Abfallprodukt” für ein anderes Projekt. Jedoch haben sich im Laufe ihrer Entwicklung so viele Features und Funktionen ergeben, dass es jetzt als mehr als angebracht erscheint, hierfür eine separate Seite zu spendieren.

Beschreibung

Eine Woche intensiver Suche nach einer passenden hexadezimalen Editbox sowie der daran anschließende verzweifelte Versuch, die Standard–Textbox von Windows dazu zu bringen, das zu tun, was sie tun soll, führten leider zu keinem zufriedenstellenden Ergebnis. Somit war ich gezwungen, eine eigene einzeilige Editbox für hexadezimale Werte zu implementieren. Hier nun das fertige Ergebnis.

Da es sich bei der HexTextBox um eine in C# geschriebene Windows Forms Komponente handelt, kann diese nur sehr schlecht darstellt werden. Daher zeigt folgende Abbildung das Programm, mit dessen Hilfe die Komponente entwickelt und auch getestet wurde.

Die Fülle der im oben gezeigten Testprogramm vorhandenen Bedienelemente lässt erahnen, wie viel an Funktionalität die HexTextBox einem Benutzer zur Verfügung stellt. Daher sollte man das Testprogramm auf jeden Fall mal ausprobieren und nicht nur, um zu sehen, was alles möglich ist.

An dieser Stelle erscheint nun ein entsprechender Hinweis zum Download erforderlich zu sein. Der oben verfügbare Quellcode enthält nur das Control und nicht wie sonst üblich den Code des gesamten Programms! Jedoch ist in beiden Downloads die Klassenreferenz in Form einer Hilfedatei enthalten.

Features

Neben den offensichtlichen Features, wie die Wahl der Schriftart und –größe sowie das Anpassen von Vordergrund– und Hintergrundfarbe, verfügt die HexTextBox auch über die Möglichkeit der Manipulation der Eingabemarke, des sogenannten Carets.

Weitere Features sind zum Beispiel die Möglichkeit der Wahl des Zeichens, das zur Trennung zwischen den einzelnen hexadezimalen Werten dargestellt wird. Auch ist die Verwendung eines Cue–Banners, also die Anzeige eines Hinweistextes, solange noch keine Daten eingeben wurden, möglich. Die Unterstützung von Rückgängig und Wiederherstellen ist ebenfalls gegeben.

Natürlich werden auch diverse Tasten und Tastenkombinationen von der Komponente HexTextBox unterstützt, die an dieser Stelle einmal aufgelistet werden sollen. Jedoch sei vorab noch bemerkt, dass die Beschreibung aller Tasten sowie Tastenkombinationen ebenfalls Bestandteil der im Download enthaltenen Hilfedatei ist.

Tasten Beschreibung
ESC Diese Taste löst die aktuelle Markierung auf.
HOME Mit dieser Taste springt das Caret von seiner derzeitigen Stelle an die erste mögliche Eingabeposition. Wird zusätzlich noch SHIFT gedrückt, dann werden alle dazwischenlegenden Werte markiert.
END Mit dieser Taste springt das Caret von seiner derzeitigen Stelle an die letzte mögliche Eingabeposition. Wird zusätzlich noch SHIFT gedrückt, dann werden alle dazwischenlegenden Werte markiert.
LEFT Diese Taste bewegt das Caret um eine Position nach links. Wird zusätzlich auch noch CTRL gedrückt, dann springt das Caret zum Anfang des linken Wertes. Wenn anstatt SHIFT gedrückt wird, dann wird abhängig von der derzeitigen Position des Carets entweder der aktuelle Wert oder der nächste Wert links markiert.
RIGHT Diese Taste bewegt das Caret um eine Position nach rechts. Wird zusätzlich auch noch CTRL gedrückt, dann springt das Caret zum Anfang des rechten Wertes. Wenn anstatt SHIFT gedrückt wird, dann wird der aktuelle Wert markiert.
INSERT Diese Taste schaltet zwischen Einfügen und Überschreiben hin und her.
DELETE Diese Taste löscht alles, was im Augenblick markiert ist. Ist zurzeit nichts markiert, wird beim ersten Drücken der aktuelle Wert zunächst markiert und erst beim zweiten Drücken dieser Taste gelöscht.
BACKSPACE Mit dieser Taste wird das Zeichen links vom Caret durch eine Null ersetzt. Wird zusätzlich auch noch CTRL gedrückt, dann werden alle Zeichen des aktuellen Wertes durch Nullen ersetzt. Werden stattdessen CTRL und SHIFT gedrückt, dann wird der aktuelle Wert komplett gelöscht, das vergleichbar mit der Verwendung der Taste DELETE ist.
TAB Mit Hilfe dieser Taste springt man zur nächsten Komponente. Wird zusätzlich auch SHIFT gedrückt, dann wird natürlich zur vorherigen Komponente gesprungen.
APPS Mit dieser Taste öffnet man das Kontextmenü, das dann direkt unterhalb der aktuellen Position des Carets erscheint. Diese Taste ist auch bekannt als Application Key, die rechts von der Leertaste gefunden werden kann. Das Kontextmenü kann aber auch mit der Tastenkombination SHIFT+F10 geöffnet werden.

Shortcuts Beschreibung
CTRL+A Diese Tastenkombination markiert alle verfügbaren Werte.
CTRL+C Diese Tastenkombination kopiert alle derzeit markierten Werte und speichert sie in der Windows–Zwischenablage. Hierbei werden die Daten als hexadezimale Zeichenfolge kopiert.
CTRL+X Diese Tastenkombination schneidet alle momentan markierten Werte aus und speichert sie in der Windows–Zwischenablage. Hier werden die Daten ebenfalls als hexadezimale Zeichenfolge gespeichert.
CTRL+V Mit dieser Tastenkombination kann der momentane Inhalt der Windows–Zwischenablage an der aktuellen Position eingefügt werden. Enthält hierbei die Zwischenablage eine hexadezimale Zeichenfolge, so wird sie genauso übernommen. Anderenfalls werden die einzelnen Zeichen der einzufügenden Zeichenfolge zuvor in ihre hexadezimale Entsprechung umgewandelt!
CTRL+Z Mit dieser Tastenkombination können die letzten Änderungen wieder rückgängig gemacht werden.
CTRL+Y Mit dieser Tastenkombination können die letzten Änderungen wieder hergestellt werden.
CTRL+U Diese Tastenkombination schaltet zwischen der Verwendung von Groß– oder Kleinbuchstaben um.

An dieser Stelle vielleicht noch ein weiterer Hinweis zum oben verfügbaren Download. Wie bereits erwähnt enthält der Quellcode, neben der Hilfedatei, nur eine einzelne Quelldatei, die wiederum den vollständigen Quelltext der Komponente beinhaltet. Diese Quelldatei kann man dann problemlos in seine Projekte einbinden und nach belieben modifizieren.

Wem dies nicht zusagt, der hätte stattdessen auch die Möglichkeit, die DLL aus dem Testprogramm in seinen Projekten zu verwenden. Denn diese DLL enthält nichts anderes als die Quelldatei der Komponente! Nun könnte sich Mancher fragen, warum dem so ist. Der Grund ist recht einfach zu erklären. Denn zur Erstellung der Hilfe wurde das Programm Sandcastle verwendet und bei diesem Tool war es leider nicht möglich, gezielt nur eine Datei zu dokumentieren. Denn dort musste immer das gesamte Projekt als Eingabe angegeben werden. Also habe ich kurzerhand eine DLL erstellt, die nur die Komponente enthält. Somit konnte dann auch die Hilfe ohne „überflüssigen” Ballast erstellt werden.

Viel Spaß bei der Verarbeitung von hexadezimalen Daten…

datenschutzerklärung  •  kontakt  •  impressum