| Datei | Titel | Summary | Net | Kategorie | Download | Sprache | Erstellt | Update |
| Add-Ins.htm | Add-Ins unter C# 2.0 | Das Erweitern der Visual Studio IDE ist einfach geworden. Das ist in einigen Situationen praktisch und kann dem Entwickler nicht nur die Arbeit erleichtern, sondern auch Dinge ermöglichen, an die man ohne Add-In-Wissen nicht gedacht hat. Zwar liegen hier und da noch ein paar kleine Fallstricke, aber die Möglichkeiten sind verblüffend weitgehend und dabei doch mit wenigen Handgriffen erledigt. Hier zunächst ein paar ausgesuchte Links: | 2.0 | Implementation | | | 10.05.2006 | 02.07.2006 |
| ApplicationSettingsWrite.htm | Typsichere Anwendungs-Einstellungen in app.config schreiben | Anwendungs-Einstellungen (im Gegensatz zu Benutzer-Einstellungen) sind standardmäßig (zu Recht) nicht beschreibbar. Tatsächlich gibt es Szenarien, in denen soetwas trotzdem mit Einschränkung sinnvoll sein kann. Insbesondere dann, wenn (etwa kurz nach dem Setup) administrative Rechte vorausgesetzt werden können. Eine .NET gestützte wenig aufwendige Möglichkeit dazu wird im Folgenden vorgestellt. | 3.5/4.0 | Einstellungen | Download | | 03.04.2010 | 03.04.2010 |
| Arbeitstage.htm | Arbeitstage berechnen | Eine sinnvolle Implementierung der Arbeitstage zwischen zwei bestimmten Tagen ist gar nicht so trivial. Hier eine mögliche Sichtweise, nebst Implementierung. | 2.0 | Implementation | Download | | 07.08.2006 | 07.08.2006 |
| AsynchronEventPattern.htm | Ereignisbasierte asynchrone Muster | Hier zwei Test-Projekte zu einem Code-Beispiel aus derMSDN. Bei beiden Projekten kann während der Berechnung nicht der Abbrechen-Button gedrückt werden, da die Berechnung die MessageLoop blockiert. Ersetzt manThread.Sleep(0)in allen Projekten aufThread.Sleep(1),funktioniert das dann. Im Beispiel wird es allerdings enorm langsam, sodass die Zahl 12345 benutzt werden sollte, um einen Effekt zu sehen. | 2.0 | Implementation | Download | | 12.06.2007 | 12.06.2007 |
| Behaviors.htm | Behaviors in WPF und Silverlight | Es gibt sehr viele gute Beschreibungen, Beispiele und Einsatzszenarien der "Behaviors" (Verhalten) in WPF und Silverlight. Sie sind extrem leistungsfähig, anpassbar, flexibel, sauber in der Implementierung und sehrMVVM-freundlich (über Eigenschaften ohne CodeBehind im ViewModel) und in Blend und VS 2010 über Designer nutzbar. Man benötigt keinProdukt "Microsoft Blend", um in WPF "Behaviors" zu benutzen, oder eigene selber zu erstellen. Sie werden über das redistributierbare "Blend SDK" aus dem "System.Windows.Interactivity" - Namensraum einsetzbar. | 4.0 | WPF/Silverlight | Download | | 24.07.2010 | 24.07.2010 |
| BinarySearch_Nearest.htm | BinarySearch des dichtesten Elementes in C# | Eine .NET 2.0 Dictionary.ContainsKey-Methode kommt etwa einer O(1)-Komplexität nahe und ist zum Suchen also eine der performantesten Möglichkeiten. In diesem Fall wird ein Element gesucht, das am dichtesten an dem zu suchenden Element liegt. Hier ist eine SortedList eine Möglichkeit, bei der man durch die Sortierung eine Binärsuche [SortedList.ContainsKey] ausführen kann und somit eine Performance von etwa O(log n) erreicht. | 2.0 | Implementation | | | 21.03.2006 | 10.04.2006 |
| BinaryWrite.htm | Eigene Klassen mit dem BinaryWriter serialisieren | Binäre Serialisierer persistieren zwar in ein kryptisches Format, aber ihre Performanz und die geringe Größe der Zwischen-Objekte lässt sie in vielen Szenarien sinnvoll zum Einsatz kommen. Hier ein Beispiel: | 1.1/2.0 | Serialisierung | | | 29.09.2005 | 29.09.2005 |
| CalendarColumn.htm | CalendarColumn für das DataGridView | In folgendem DataGridView kann man durch Doppelklick eine Datums-Spalte formatiert editieren. Gleichzeitig ist auch die Angabe über einen DateTimePicker möglich. | 2.0 | Winform DataGridView | Download | | 26.06.2005 | 24.06.2006 |
| CdAuswerfen.htm | CD auswerfen | Auswerfen und Einziehen einer CD in C#. | 2.0 | MCI | Download | | 14.05.2007 | 14.05.2007 |
| CheckBoxDoubleClick.htm | Unterscheiden zwischen Klicks und Doppelklicks | Bei Controls, wie CheckBox und Button sind Ereignisse wie DoubleClick zurecht nicht für die Intellisense sichtbarund nicht direkt vorgesehen. Um es dennoch zu ermöglichen hat das reine Aktivieren des"ControlStyles.StandardDoubleClick"oft den Nachteil, dass das Click-Ereigniss dann doppelt (oder gar dreifach) ausgegeben wird. Verschiedene Verfahren bieten sich an. Hier ein Pattern, dass u.a. über die "SystemInformation.DoubleClickTime" implementiert ist. | 3.5 | Controls | Download | | 01.11.2008 | 01.11.2008 |
| Clear.htm | Implementation von Clear bei einer .NET-WinForm-ControlCollection | Hier wird ein Beispiel für die Framework-Implementierung der Clear()-Methode einer .NET1.1-WinForm-ControlCollection aufgeführt. Es wird deutlich, das kein Dispose stattfindet. Einige zentrale Microsoft-Referenz-Links beschreiben den Hintergrund: | 1.1 | Implementation | | | 22.11.2005 | 22.11.2005 |
| CollectionEdit.htm | CollectionEditor ohne PropertyGrid anzeigen | Über ein PropertyGrid kann man Collection-Editoren mit einem Klick auf [...] innerhalb des PropertyGrid's anzeigen. In diesem Artikel wird gezeigt, wie man dies auch ohne PropertyGrid schafft. | 2.0 | Collections | Download | | 03.09.2007 | 03.09.2007 |
| ColorTabControl.htm | Eigene Farben in TabControl-Reitern | Hier wird eine Beispiel-Implementierung eines TabControl mit benutzerdefinierbaren Vordergrund- und Hintergrundfarben für die einzelnen TabPages aufgeführt. Es gibt im Netz bereits viele Vorschläge. Zum Beispiel: [Dotnetrix. Mick Doherty's .net tips and tricks]. Allerdings haben alle gewisse Nachteile (wie auch die hier dargestellte Lösung).
| 3.5 | TabControl | Download | | 29.12.2008 | 29.12.2008 |
| ComboTextChanged.htm | ComboBox Tasten-Auswahl bei Zeit-Werten | Der folgende Code beschreibt eine Implementations-Möglichkeit für eine ComboBox mit Zeitwerten (06:00 - 24:00), deren Wert-Auswahl über Tasten erfolgen soll und zum Beispiel bei der Taste 9 direkt den Wert 09:00 auswählt. | 1.1 | Winform-Controls | | | 30.06.2005 | 30.06.2005 |
| ConcurrentReadWrite.htm | Gleichzeitiges Beschreiben und Lesen einer Datei | In folgendem Beispiel-Projekt wird das Verfahren des gemeinsamen Lesens und Schreibenseiner Datei verdeutlicht. Ein umständliches Neuanlegen einer zweiten und späteres ineffizientes Rückkopieren ist so nicht nötig. Eine Voraussetzung ist, dass sich die Zeilen-Längen dabei nicht vergrössern. Die Technik geht über einen gleichzeitig geöffneten StreamReader und StreamWriter, die dann einen gemeinsamen BaseStream benutzen, dessen Position auf gewünschte Werte gesetzt werden kann. | 2.0 | I/O | Download | | 17.09.2006 | 17.09.2006 |
| ContextMenuStrip.htm | ContextMenuStrip, ToolStripProfessionalRenderer und ProfessionalColorTable | Man kann das Kontext-Menü (allgemeiner ToolStrips) unter .NET 2.0 sehr differenziert beeinflussen. Es ist nur eine korrekte Ableitung der Klassen ContextMenuStrip, ToolStripProfessionalRenderer und ProfessionalColorTable notwendig. Hier ein Beispiel:
| 2.0 | Windows Forms | | | 27.03.2006 | 27.03.2006 |
| ControlInvoke.htm | Bearbeiten von Steuerelementen aus Threads | Methoden, die sich auf Steuerelemente auswirken, sollten nur aus dem Thread ausgeführt werden, auf dem das Steuerelement erstellt wurde. Das .NET Framework stellt Methoden bereit, die von jedem beliebigen Thread aus ohne Sicherheitsrisiko aufgerufen werden können und die ihrerseits Methoden aufrufen, die mit Steuerelementen anderer Threads interagieren. Die Control.Invoke-Methode (bzw.Dispatcher.Invokesiehe WPF unter .NET 3.x) ermöglicht die synchrone Ausführung von Methoden für Steuerelemente. Ein paar zentrale Info-Links zum Thema und Kurz-Beispielen zu [anonymes Delegate,benanntes Delegate,BackgroundWorkerundWPF].
| 1.1-4.0 | Multithreading | | | 19.11.2005 | 12.06.2010 |
| ConvertBase.htm | Zahlen in Strings verschiedener Basen umwandeln | Es wird eine Klasse zur Umwandlung von Zahlen unterschiedlicher Basis in Strings und umgekehrt aufgezeigt. Das .NET Framework 1.1/2.0 stellt mit seinen Convert-Methoden nur die Umwandlung der Basen 2, 8, 10 oder 16 zur Verfügung. Die folgenden Methoden beherrschen die (durchgängigen) Zahlen-Basen 1-36. Es ist weiterhin zu sehen, wie man eigene Exceptions implementieren kann. | 1.1/2.0 | Konvertierung | | | 20.01.2006 | 20.01.2006 |
| CsResource.htm | Resource-Einbindung in C#.NET 2.0 - Visual Studio .NET 2005 | Bei Visual Studio 2005 hat sich die Ressourcen-Einbindung verbessert und kann nun streng typisiert abgerufen werden. Der Designer setzt eigene:
| internal static string String2 {get{return ResourceManager.GetString("String2", resourceCulture);}} | | -Eigenschaften ein, die über einen automatisch eingefügten Namespace: | | Properties und einer Resources-Klasse abgerufen werden können: MessageBox.Show(Resources.String2);/*using Ressource2005.Properties;*/ | Hier ein paar Vorgehensweisen für eine zusätzlichen Sprache: | 2.0 | Ressourcen | Download | C# | 25.09.2005 | 22.06.2007 |
| CurrencyEZB.htm | Aktuelle Währungskurse der EZB mit LINQ to XML | Aktuelle Währungskurse sind über die Europäische Zentralbank (EZB) zum Beispiel alsXML-Dateidownloadbar. Hier wird gezeigt, wie man mit LINQ to XML und C# 3.0 diese Datei recht übersichtlich auslesen kann. | 3.5 | LINQ | Download | | 20.04.2008 | 20.04.2008 |
| CurrentItemChanged.htm | Wie Sub-Klassen über CurrentItemChanged informieren | OO-Design, wie Subklassen bei der Datenbindung ihre Eltern-Klassen informieren können (CurrentItemChanged), damit diese (zum Beispiel) ihre Ansicht aktualisieren können. Ein typisches Mittel ist die INotifyPropertyChanged-Schnittstelle. Spart man sich diese Schnittstelle, ist ggf. ein ResetCurrentItem als Workaround möglich.
| 2.0/3.5 | Datenbindung | Download | | 21.01.2008 | 21.01.2008 |
| CustomAttributes.htm | Auslesen und Definieren benutzerdefinierter Attribute | Siehe auch: [Verfassen von benutzerdefinierten Attributen], [Attribute.GetCustomAttributes-Methode] | 1.1,2.0 | Implementation | | | 24.05.2006 | 24.05.2006 |
| CustomDgvHeader.htm | Benutzerdefinierter DataGridView ColumnHeader | In diesem Artikel wird eine Technik vorgestellt, wie man benutzerdefinierte Spaltenüberschriften beim DataGridView erreicht. Hier sind es Gruppierungs-Label, wie im Bild zu sehen. Die Gruppierungs-Label bewegen sich bei Scroll-Aktionen mit: | 2.0 | DataGridView | | | 10.11.2007 | 10.11.2007 |
| DataAccess.htm | Datenzugriffs-Links für .NET | Links für den Datenzugriff: Team Blogs, MSDN-Seiten, Newsgroups | 1.1-3.5 | Daten Zugriff | | | 01.04.2006 | 10.01.2010 |
| DataGridButton.htm | Einfügen von Buttons in einer DataGrid-Kopfzeile | Hier wird ein Beispiel für das Einfügen eines Buttons in eine DataGrid-Kopfzeile gegeben. Dies wird in der Essenz darüber erreicht, dass man der Controls-Auflistung eines eigenen abgeleiteten DataGrid's mittels "this.Controls.Add(button1)" das gewünschte Control zufügt:
| 1.1 | DataGrid | | | 21.06.2005 | 21.06.2005 |
| DatagridException.htm | "Verschluckte" Exceptions beim DataGrid | Das DataGrid kann in einigen Situationen Ausnahmen "verschlucken". Das bedeutet, dass der Programmierer nicht die Möglichkeit hat, diese durch einen lokalen oder globalen Exception-Handler abzufangen. Die Lösung ist ein statischer BusinessObject Event, der dann für alle Business-Objekte zur Verfügung steht. Hier ein Beispiel:
| 1.1 | DataGrid | | | 23.09.2005 | 23.09.2005 |
| DataGridIP.htm | Benutzerdefinitiertes Sortieren beim DataGrid in C# | Beispiel-IP-Sortierung einer DataGrid-Spalte durch Klick auf den ColumnHeader. Da es wenig Beispiele gibt, wie man die ApplySort-Methode der IBindingList benutzten kann, hier ein Beispiel. | 1.1 | DataGrid | Download | | 01.08.2005 | 01.08.2005 |
| DataGridViewBeispiel.htm | Beispiel-Tabelle für das DataGridView | Kleines Beispiel des Füllens eines DataGridViews durch Erstellung eines eigenen DataTables. Bool-Typen werden automatisch durch Checkboxen dargestellt. Das DefaultCellStyle.Format "dd.MMMM yyyy" formatiert die Datums-Spalte wie gewünscht. Ein weiteres Beispiel eines ungebundenen DataGridViews wirdhierdargestellt. Es zeigt die ToString()-Überschreibung einer Klasse, die somit in der DataGridView-Zelle angezeigt wird. Weiterhin wird deutlich, wie man über Casting auf Member des dahinterliegenden Typs zugreifen kann. | 2.0 | DataGridView | | | 26.03.2006 | 11.11.2006 |
| DataGridViewDragDrop.htm | DataGridView Drag Drop | Mit dem DataGridView ist es kein grosser Aufwand ein Drag & Drop zu implementieren. Der Quellcode wurde anfangs z.T. dem "DataGridView FAQ" entnommen, der eine gute Quelle auch für andere Probleme darstellt. Im Download-Projekt habe ich den Code jedoch noch abgewandelt, um auch das Drag & Drop für die letzte Zeile zu ermöglichen. | 2.0 | DataGridView | Download | | 08.06.2006 | 07.09.2008 |
| DataGridViewLinkColumn.htm | DataGridViewLinkColumn | Hyperlinks im DataGridView funktional einbinden mit der DataGridViewLinkColumn. Das ist noch recht selten Online zu finden. Hier eine Beispiel-Implementation. | 2.0 | DataGridView | Download | | 08.08.2006 | 13.08.2006 |
| DataGridViewSort.htm | Gleicher Zeilen-Inhalt nach Sortieren beim DataGridView | Das DataGridView setzt die Binding-Position nach einem Klick auf den ColumnHeader unter .NET 1.1/2.0 nicht um, wenn das DataGridView etwa an DataTable gebunden ist (gebundenes Szenario). In ungebundenen Szenarien funktioniert bereits ein einfaches Setzen vonFirstDisplayedScrollingRowIndexauf den RowIndex der gewünschten Zelle. Das bedeutet, dass der Inhalt der aktuellen Position nach dem (Sortier-) Klick anders ist. Um den gleichen Inhalt zu ermöglichen ist folgender Beispiel-Code eine Variante: | 2.0 | DataGridView | | | 11.02.2006 | 01.06.2008 |
| DataSetXml.htm | DataSet mit eigenen Schema-String im Code neu erzeugen | Mit dem StringReader und der DataSet.ReadXml() Methode kann man sehr einfach auch ein komplettes DataSet nur durch Strings erzeugen. Hier ein Code-Beispiel: | 1.1 | DataSet | | C# | 22.10.2005 | 22.10.2005 |
| DgvButtonColumn.htm | DataGridView-Zelle mit Browse-Button | Hier wird eine Bearbeitungsmöglichkeit für das DataGridView vorgestellt, bei der eine benutzerdefinierte Aktion nach Druck auf einen Button ausgeführt wird. Der Button erscheint nur bei Klick auf die DataGridView-Zelle und nur, wenn es die Link-Spalte ist: | 2.0 | DataGridView | Download | | 09.08.2006 | 09.08.2006 |
| DgvFooter.htm | DataGridView mit Fußzeile | Ein DataGridView mit Fußzeile, die automatisch int-Spalten aufsummiert, als anpassbares UserControl. Die Fußzeile verschiebt sich, wenn die horizontale ScrollBar des DataGridViews betätigt wird. Auch Rezise-Aktionen werden berücksichtigt. | 2.0 | C# Sprache | Download | | 24.02.2008 | 31.05.2009 |
| DgvItemSwitch.htm | Verschieben von Elementen in DataGridViews | Das Verschieben von Elementen über DataGridViews kann man mit Hilfe des BindingSource und dessen Methoden leicht bewerkstelligen. Im Folgenden ein kleines Beispiel über ein Copy()-Vorgang eines DataTables, das auch das Layout über einen TableLayoutPanel deutlich macht. | 2-4 | C# Sprache | Download über Views | | 17.06.2010 | 18.06.2010 |
| DgvPainting.htm | Ein Grid selber zeichnen | Will man einfach nur ein Grid mit einem Linien-Raster haben, diese Linien auch noch zur Laufzeit verschieben können und bequem in die Zellen etwas hineinmalen, so kann man dies durchaus einfach und höchst flexibel und erweiterbar mit dem DataGridView erledigen. Eigene UserControls oder schwierige OOP-Verfahren sind da gar nicht nötig. Erreichen tut man dies, indem man einfach Funktionalität über den Code herausnimmt und das CellPainting-Ereignis behandelt. | 2.0 | DataGridView | Download | | 03.06.2007 | 03.06.2007 |
| DgvVirtual.htm | Nutzung grosser Datenmengen beim DataGridView | Die VirtualMode-Eigenschaft desDataGridViews ist neu im .NET Framework 2.0. Hier ein etwas vereinfachtes Beispiel, um 200.000 Datensätze im DataGridView anzuzeigen. Es wird nur ein Ereignis behandelt: DataGridView.CellValueNeeded. Das Füllen der 200.000 Daten-Templates ins Grid dauert nur etwa 200 Millisekunden. | 2.0 | DataGridView | Download2 | | 09.04.2006 | 22.07.2010 |
| DictionaryConstraint.htm | Dictionary generisch einschränken | Bei einem generischen Dictionary mit einfachem TKey-Typ erscheint beim Hinzufügen gleicher "Keys" eine (gewünschte) Fehlermeldung. Will man, dass der Versuch eines Zufügens eines gleichen Key's zu einer Exception führen soll, so kann man die Implementation in diesem Artikel (ganz unten) benutzen. Nebenbei wird eine Methode aufgezeigt, wie man lokalisierte Fehlermeldungen des Frameworks benutzen kann und Wertgleichheit generisch implementieren kann. | 3.5 | Generica | Download | | 05.10.2008 | 05.10.2008 |
| DockRightVertical.htm | Forms untereinander platzieren mit .NET 1.1 | Was unter .NET 2.0 leicht mit demTableLayoutPanel oderFlowLayoutPanel von der Hand geht, muss in .NET 1.1 noch teilweise mit eigenem Resizing-Code implementiert werden, trotz Anchor- und Dock-Eigenschaften. Hier ein Beispiel mit prozentual gleicher Höhe und vertikal untereinander stehenden Formen.
| 1.1 | Windows Forms | | | 06.01.2006 | 06.01.2006 |
| DoublePattern.htm | Doppelte Zeilen in neues DataGridView übertragen | Doppelte Zeilen (mit gleichen Werten in einer auszuwählenden Spalte) werden im Code-Beispiel generisch in ein zweites DataGridView übertragen. Ein kleine Arbeitserleichterung für ähnliche Aufgaben. Das Fenster wird im Beispiel über Windows Vista dargestellt. | 2.0 | Implementation | Download | | 28.01.2007 | 28.01.2007 |
| DPAPI.htm | DPAPI unter C# | DPAPI ist eine Windows-spezifische Verschlüsselungs-API. Während .NET 2.0 diese schon über einfache managed Wrapper bereitstellt, muss sie unter .NET 1.1 noch durch eigenes P/Invoke gebildet werden. Hier ein Demo-Download für .NET 4.0. | 1.1, 2.0 | Verschlüsselung | Download | | 11.02.2006 | 25.04.2011 |
| DragDropTreeView.htm | Drag & Drop TreeView | Hier wird eine mögliche Implementierung gezeigt, wie Drag und Drop zwischen zwei TreeViews ermöglicht wird.
| 2.0 | Drag & Drop | Download | | 03.08.2008 | 03.08.2008 |
| DynamicCreate.htm | Dynamisches Erzeugen von Controls per Reflection und XML | Dieses Beispiel zeigt, wie Controls dynamisch über XML-Definitionen aus einer Datei zur Laufzeit in eine Form eingebunden werden. Normal werden nur Eigenschaften der Controls über Reflection gesetzt, für die Ausführung einer Methode wurde beispielhaft eine fest codierte Pseudo-Eigenschaft "Loop" implementiert.
| 2.0 | Reflection | Download | | 08.04.2007 | 22.04.2007 |
| EntityUpdate.htm | Entity Update in verteilten Szenarien - Linq to Entities | In verteilten Szenarien ist ein Update eines Entities (ADO.NET Entity Framework) nicht komplett trivial. Es gibt zwei Haupt-Techniken: Technik 1: Übergabe eines geklonten Original-Objektes. Technik 2: Das Original innerhalb der Update-Methode über einen (zusätzlichen) RoundTrip vom Server holen. Siehe dazu: [How to:Apply Changes Made to a Detached Object] | 3.5 SP1 Beta1 | LINQ to Entities | Download | | 10.05.2008 | 10.05.2008 |
| EnumLocalize.htm | Enum lokalisieren | Es gibt viele Szenarien, für die eine Lokalisierung vonEnum-Namen sinnvoll und möglich sind. In diesem Beispiel werden die typsicheren Ressourcen des Visual Studio Designers benutzt, um dann später mit dem ResourceManager (GetString) darauf zuzugreifen. | 3.5 | Lokalisierung | Download | | 25.10.2008 | 25.10.2008 |
| Enums.htm | Enums unter C# | [Dieser Artikel dient relevanter Code & Informations-Sammlung bzgl. Enums] - Test-Version completionlist-Hack in C#. - U.a. Ralf Wesphal's generische "Set"-Klasse. John Skeet's "Enhanced Enums in C#". - Java 5.0 Enum's: In früheren Versionen von Java war ein Enum wie in C/C++/C# letztlich nur ein int. Genauer, es gab keine Enums! Dies wurde in Java 5.0 geändert. Doch sie haben hier eine weitergehende Semantik, als in .NET.
| 2.0 | Implementation | | | 21.01.2006 | 17.02.2006 |
| EventLogLesen.htm | EventLog auslesen | Ein einfaches Beispiel, wie man das Lesen aus einem beliebigen EventLog mit einem BindingNavigator nebst BindingSource kombinieren kann. Die Werte eines EventLogEntryswerden als SelectedObject in einem PropertyGrid angezeigt.
| 2.0 | Windows Forms | Download | | 20.05.2006 | 20.05.2006 |
| FadeIn.htm | Control in WinForm einblenden | Man kann ein Control (oder mehrere) in eine Windows Form langsam einblenden, indem man eine überdeckende Form mit einer sich über Timer ändernden Opacity-Eigenschaft anzeigt. Dies ist eine Möglichkeit von mehreren.
| 1.1/2.0 | Windows Forms | Download | | 02.04.2006 | 02.04.2006 |
| FileToClipboard.htm | Dateiname vom Explorer-Kontextmenü ins Clipboard setzen | Aufgabe: Aus dem Explorer heraus den kompletten Dateinamen über Kontext-Menü ins Clipboard setzen. Hier wird gezeigt, dass dies mit einer kleinen reg-Datei und einen Zusatzprogramm - hier in C# - leicht möglich ist. | 2.0 | Sonstiges | | | 22.03.2006 | 22.03.2006 |
| FilterPropertyGrid.htm | PropertyGrid zur Laufzeit mit dem TypeConverter beeinflussen | Man kann Attribute beim PropertyGrid zur Laufzeit (quasi) beeinflussen, wenn man die Klasse, deren Objekt auf das SelectedObject festgelegt wurde, mit einem TypeConverter-Attribut versieht.
| 2.0 | PropertyGrid | Download | | 19.05.2007 | 19.05.2007 |
| FontInstall.htm | Font Installation und Abfrage unter .NET | Dieses Codebeispiel zeigt eine Möglichkeit auf, einen eigenen Font zu installieren oder abzurufen. In diesem Fall "aerosol.ttf". Die zentralen Bausteine dabei sind die PrivateFontCollectionund die InstalledFontCollection: | 2.0 | Fonts | Download | | 23.12.2005 | 23.12.2005 |
| ForAndForeach.htm | Die for- und foreach-Anweisung im Vergleich | Die Performance von foreach im Gegensatz zu der for-Anweisung ist teilweise unterschiedlich, teilweise fast identisch, abhängig von mehreren Faktoren. Hier werden einige Szenarien, Bedingungen und Ergebnisse aufgelistet. | 2.0 | Implementation | Download2 | | 28.01.2006 | 01.02.2006 |
| ForenbeitraegeBewerten.htm | Forenbeiträge bewerten | Nutzen Sie die Bewertungsfunktionen ("Antwort" und "Hilfreich") in denMSDN Foren! Unter anderem können andere später eine Lösung schneller finden. Es ist also wünschenswert, dass die fragenden (Benutzer) die Postings anderer Beantworter bewerten. Hier dazu die wichtigsten Anhaltspunkte aus den Forenregeln und FAQs. | 1-4 | Allgemein | | | 01.08.2010 | 01.08.2010 |
| ForenHinweise.htm | Foren Hinweise | Es gibt in fachlichenForen(die eben auch fürfachlicheFragen gedacht sind) leider zum geringen Teil auch Leute, die lassen sich dazu hinreißen provokante oder angreifende privatere Bemerkungen oft im Mantel von fachlichen Stücken gemischt (auch an MVPs) zu schreiben. Unabhängig von dem, der angefangen hat: das verfolgt meiner Vermutung nach zum TeilZiele wie: Antwortpunkte, Duchsetzen der eigenen Meinung auf Biegen und Brechen, verbales Abreagieren). Das ist zwar klardie Ausnahme,aber es kommt eben vor und ich gehe in diesem Artikel auf Aspekte diesbezüglich ein. Liebe Leute: Obiges ist die falsche Herangehensweise! | | Foren | | | 30.10.2010 | 30.10.2010 |
| FormatProvider.htm | Formatierung von Einträgen im DataGridView | Wenn die Format-Eigenschaft des DefaultCellStyle nicht mehr ausreicht, kann der FormatProvider(zusätzlich) benutzt werden, um die Darstellung innerhalb der DataGridView-Zellen benutzerdefiniert zu variieren. Die in .NET 2.0 neue DataGridViewCellStyle.FormatProvider-Eigenschaft ruft das Objekt für die Bereitstellung der kulturspezifischen Formatierung der DataGridView-Zellenwerte ab, oder legt dieses Objekt fest. | 2.0 | DataGridView | | | 15.11.2005 | 03.02.2006 |
| FSnapView.htm | Solve package errors in VS2005 help window | This is an application, that puts the results of fsnap in a DataGrid, so sorting is enabled. By the way - one can use this app for other automation of program-outputs, or simply learn how to redirect program output, while letting the GUI be responsive.
| 1.1 | Troubleshooting | Download (Sources) | | 16.02.2006 | 04.04.2006 |
| FtpUpload.htm | FTP Upload mit Byte- und ProgressBar-Anzeige | Hier wird ein Code-Beispiel vorgestellt, das eine Datei asynchron auf einen FTP-Server uploaded, mit zusätzlicher Ausgabe der Bytes, die hochgeladen wurden. Es ist ein leicht erweitertes MSDN-Beispiel. Aufzurufen ist die "staticvoidUpload()" Methode mit einer Label-Instanz, in der die Bytes dargestellt werden sollen.
| 2.0 | FTP | Download | | 13.04.2007 | 07.08.2008 |
| FullTrust.htm | Full Trust für Assemblies per Sourcecode | Dieser Artikel beschreibt, wie man mit Hilfe seines eigenen Sourcecodes erreichen kann, dass seine Anwendung dank zugeordneter Codegruppe mit „Full Trust“ ablaufen kann. Ein geringfügiger Nachteil liegt auf der Hand: Dieser Sourcecode muss selber zur Ausführung der Anweisungen berechtigt sein. | 1.1 | Sicherheit | Download | | 19.04.2006 | 19.04.2006 |
| GC.htm | Garbage Collector | Selbst bei managed Klassen die managed Member enthalten, die IDisposable implementieren: Der Garbage Collector führt die Freigabe des Objektes automatisch aus. Durch Entwurfs-Pattern kann sichergestellt werden, dass dabei ein beliebiger Freigabe-Code aufgerufen wird.
| 2.0 | Implementation | Download | | 02.08.2006 | 08.03.2007 |
| GenericLists.htm | Generische Listen sortieren | Unter .NET 2.0 gibt es als neues Feature die Generics. Wegen der besseren Performanz, und besseren Wartbarkeit und Typsicherheit sind sie in vielen Fällen den klassischen ArrayList'en oder von CollectionBase abgeleiteten Listen (.NET 1.1) vorzuziehen. | 2.0 | Generics | | | 03.11.2005 | 27.05.2007 |
| GetWindowText.htm | GetWindowText bei externen Prozessen | Es soll Leute geben, die denken, GetWindowsText liefert keine oder falsche Ergebnisse bei externen Prozessen. Der Artikel zeigt, dass GetWindowText durchaus dafür eingesetzt werden kann. | 3.5 | C# Sprache | Download | | 10.10.2009 | 10.10.2009 |
| INPC.htm | Sichere Strings in INotifyPropertyChanged | Der Artikel zeigt eine "sichere" Nutzung von Strings über Lamda-Ausdrücke mit INotifyPropertyChanged Implementierung im ViewModel. Dennoch können sie die Methodik auch in vielen anderen Szenarien, wo Strings auftauchen, vorteilhaft einsetzen. Der Vorteil ist u.a., dass nun falsch eingegebene Strings ggf. gleich im Compiler gemeldet werden, was sonst vielleicht erst beim Kunden passiert ist ;-) | 4.0 | WPF | Download | | 08.07.2010 | 08.07.2010 |
| IsVisualStylesEnabled.htm | Sind VisualStyles aktiviert? | Unter .NET 2.0 schon einfach mit Application.RenderWithVisualStyles abfragbar, so fehlt eine solche Methode unter .NET 1.1: "IsVisualStylesEnabled". Hier eine mögliche Implementation über Windows-API. Der Code wurde unter Zuhilfenahme mehrerer Internet-Artikel erstellt. | 1.1/2.0 | Implementation | | | 28.01.2006 | 28.08.2007 |
| KeyEventUserControl.htm | KeyEvents aus UserControls | Hier wird ein Beispiel gezeigt, wie Tastatur-Events von mehreren UserControl's über die Form global behandelt werden können. Sowohl der Click mit der Maus, als auch der Tastendruck [Keys.Up, Down, Left, Right] führen zum gleichen Code-Handling. Bei MenuItem's ginge dies einfacher über die Shortcut-Eigenschaft.
| 2.0 | UserControls | Download | | 16.09.2006 | 16.09.2006 |
| Komponente.htm | Komponenten einbinden und benutzen | Hier wird ein Beispiel für die Einbindung und Benutzung von Methoden, Events und Schnittstellen einer Komponente (von Component abgeleitet) gegeben. Komponenten - wie z.B. ein OpenFileDiaog - werden beim Hereinziehen aus der ToolBox einer WindowsForms-Anwendung nur im unteren Teil der Form dargestellt und sind zur Laufzeit nicht direkt sichtbar. | 2.0 | Implementation | Download | | 24.03.2007 | 25.03.2007 |
| Konstruktoren.html | Konstruktoren unter C# | Konstruktoren und Destruktoren werden nicht vererbt. Allerdings bedürfen sowohl die Basis- als auch die abgeleiteten Komponenten eines Objektes der Initialisierung. Die Basis-Komponente eines Objektes ist für die Initialisierung der Basis-Member verantwortlich, während abgeleitete Komponente für die Initialisierung der abgeleiteten Member zuständig ist. Konstruktoren der Basis- und abgeleiteten Komponenten werden aus diesem Grund aufgerufen.
| 1.1/2.0 | Implementation | | | 09.03.2006 | 09.03.2006 |
| LastLogonUser.htm | LastLogon des Benutzers feststellen | Es gibt mehrere Methoden, die Zeit des letzten Logons eines Users festzustellen. Während Verfahren über DirectoryEntry langsam sind, kann man über die NetUserGetInfo API ein performanteres Verhalten erreihen. Allerdings funktioniert das Verfahren mit DirectoryEntry über LDAP auch mit Active Directory. | 2.0 | C# Sprache | Download | | 21.07.2008 | 21.07.2008 |
| LatebindWord.htm | Späte Bindung bei C# am Beispiel Word | Versions-unabhängige Programmierung in Office Unschön ist bei normaler C#-Programmierung, dass bei Befehlen wie Documents.Open(...) sehr viele Parameter als Missing.Value angegeben werden müssen. Das muss nicht sein. Man kann sich einen Wrapper bauen, der auf Basis des BindingFlags.OptionalParamBinding alle Methoden generisch mit den nur notwendigen Parametern aufruft.Auch ist man so geschützt vor dem Umstand, die Methoden in den unterschiedlichen Office-Versionen mit anderen Signaturen aufrufen zu müssen. | 1.1 | Latebinding | | | 14.03.2005 | 25.01.2006 |
| LinkTitle.htm | Link mit Titel in die Zwischenablage | Die Lebensdauer von Links, die zum Beispiel in Newsgroups gepostet werden, wird immer geringer. Wäre einTitelmit dem Link zusätzlich angegeben, so wäre ein späteres Wiederfinden ggf. toter Links deutlich einfacher, denn dann kann über Suchmaschinen der neue Link oft wiedergefunden werden. Hier eine Möglichkeit über erweiterte Internet Explorer Kontext-Menüs für beliebige Webseiten sowohl den Titel, als auch die URL in die Zwischenablage zu sichern. | 2.0-4.0 | JavaScript | downloaden | | 22.09.2007 | 15.03.2011 |
| LINQ Samples.htm | LINQ Samples | Die hier aufgeführten LINQ Beispiele sind nach einem Download von "C# LINQ and language samples for Visual Studio 2008" erreichbar. Der Inhalt dieses Artikels ist nur eine Kopie der Readme.htm aus dem Ordner, wo sie die LINQ-Samples hinkopiert haben, um einen Überblick zu bekommen, welche Beispiele überhaupt vorhanden(installiert werden) sind.
| 3.5 | C# Sprache | | | 23.12.2007 | 23.12.2007 |
| LINQ.htm | LINQ | LINQ ist ein Akronym für ".NETLanguageINtegratedQuery" und beinhaltet sprach-integrierte Abfrage-, Mengen- und Transformations-Operationen. In diesem Artikel werden Standard-Links für Referenz und Beispiele bzgl. LINQ aufgeführt. | 3.5 | C# Sprache | | | 23.12.2007 | 05.02.2011 |
| List_T_Beispiel.htm | List<T> Beispiel für C# | Beipiel für die Benutzung generischer Listen mit generischen Methoden. Weitere Artikel dazu:Generische Listen sortieren.
| 2.0 | Generics | | | 21.03.2006 | 21.03.2006 |
| LocalizeRuntime.htm | Lokalisierung zur Laufzeit | Es wird eine Möglichkeit gezeigt, wie man eine Windows Form zur Laufzeit lokalisiert darstellen kann und die Sprache umschalten kann. | (1.1)/2.0, [Download] | Windows Forms | Download | | 28.03.2006 | 20.05.2008 |
| LogonUser.htm | Code mit anderen Rechten ausführen | Code wird standardmässig mit den Rechten ausgeführt, die der aktuelle Prozess hat. Das ist im Normalfall dann auch der angemeldete Benutzer. Will man temporär Code mit anderen Rechten ausführen, kann man die API LogonUser, WindowsIdentity.Impersonate nutzen.
| 3.5 | Implementation | Download | | 18.04.2006 | 10.01.2009 |
| MasterDetail.htm | Master/Detail mit DataSet-Designer | Eine recht einfache Methode zur typsicheren Datenbindung mit Master/Detail-Tabelle: Man erstellt mit dem Designer ein DataSet mit zwei Tabellen und zieht mit der Maus von der Master-Tabelle[Spalte IDMT] auf die Detail-Tabelle. So ergibt sich automatisch eine Beziehung (hier zwischen den Schlüssel- und Fremdschlüsselspalten IDTM). Man kann die Master- und die ausgeklappte Detail-Tabelle nun einfach in die Form ziehen. Der Speichern-Button muss ggf. noch enabled werden. Das Laden und Speichern wird hier über eine XML-Datei erledigt. | 2.0 | Datenbinding | Download | | 02.07.2006 | 09.03.2010 |
| MsChart.htm | Microsoft Chart Control | Installations-Details und Download-Adressen zu den neuen .NET Chart-Controls von Microsoft. Die "Microsoft Chart Controls für .NET" ermöglichen eine anspruchsvolle Daten-Visualisierung für Entwickler. Durch Benutzung dieser Chart-Steuerelemente kann man ASP.NET oder Windows-Forms-Applikationen mit einfachen, intuitiven und visuell sehr ansprechenden Diagrammen für komplexe statistische oder finanzielle Analyse erstellen. Die Steuerelemente sind explizit für Microsoft Visual Studio 2008 designed. | 3.5 SP1 | Controls | | | 26.10.2008 | 26.10.2008 |
| MshtmlParser.htm | MSHTML ohne WebBrowser als Parser benutzen | Es wird gezeigt, wie man ohne WebBrowser-Control die MSHTML-Bibliothek zum Parsen einer HTML-Datei (oder URL) benutzen kann. Hier wird einmal die Text-Darstellung ausgegeben und einmal nur die Links. Es sind aber etliche andere Dinge machbar, da die MSHTML-Bibliothek hier über COM eine Fülle an Funktionen bereitstellt.
| 2.0 | Implementation | Download | | 13.08.2006 | 13.08.2006 |
| MshtmlTab.htm | Eigenes HTML im WebBrowser einfügen | Der Artikel beschreibt das Einfügen von eigenem HTML (hier ein Table) in ein über die COM Registerkarte unter Visual Studio hereingezogenes WebBrowser-Control. Die Library "Microsoft.mshtml" (.NET-Registerkarte) ermöglicht dynamischen Aktionen über das Object-DOM.
| 1.1 | WebBrowser | Download | | 21.04.2006 | 21.04.2006 |
| MultiLineDataGrid.htm | Multiline DataGrid | Das DataGrid stellt normalerweise nur bei Klick eine Zelle umgebrochen dar. Wie das zu ändern ist und gleichzeitig dynamisch berechnete Zeilen-Höhen erreichbar sind, zeigt die nachstehende Lösung. Zusammen mit dem Projekt DataGridBrowser [SyncFusion] kann man sich ein kleines Test-Projekt zusammen bauen. | 1.1 | Implementation | Download | | 16.06.2005 | 16.06.2005 |
| MVVM.htm | MVVM - Das Model View ViewModel - Muster | In diesem Artikel werden Links zum MVVM-Pattern und nutzenden Technolgien, insbesondere oft WPF, Silverlight, Composite Applications, und RIA Services aufgeführt. Das MVVM-Pattern kann auch als Mittel zum Schreiben von hybriden [Windows Forms / WPF / Silverlight] UI's unabhängig mit nur einer Code-Basis benutzt werden. Es ist von der Basis her das "Presentation Model" Pattern von Martin Fowler. | 3.0-4.0 | Architektur | | | 29.12.2009 | 01.09.2010 |
| N_M_DataGridView.htm | N:M Beziehungen über DataGridViews anzeigen | Dieser Artikel erläutert zwei Möglichkeiten zur Visualisierung von N:M Beziehungen mit dem DataGridView. Es wird eine Technik über eine Zwischentabelle mit zwei 1:N Beziehungen erläutert. Zum einen wird eine Möglichkeit über LINQ-Joins dargestellt, zum anderen über die Filter-Eigenschaft des BindingSource. -Handling 1(über LINQ Query)
| 3.5 | DataGridView | Download | | 26.04.2009 | 26.04.2009 |
| NamedPipes.htm | Named Pipes unter .NET | Im System.IO.Pipes Namespace gibt es unter anderem die .NET Klassen: NamedPipeServerStream und NamedPipeClientStream. Hier ein kleines Windows Forms Beispiel, wie man eine einfache Kommunikation aufbauen kann: | 3.5 | Kommunikation | Download | | 06.02.2008 | 06.02.2008 |
| NetVersionen.htm | | | | | | | | |
| NetVersions.htm | Determine the Servicepack of .NET Framework | The safe method to determine which Servicepack on which .NET Runtime is installed is - looking to the file version of one of the core assemblies inside the installed framework-folder. While there is no real tool for that at moment, users made their own. For example see :DotNet VersionCheck Utility, or Aron Astebners setup verification tool, where you do not have an overview and must manually check all frameworks and must agree with license, but proof against a bunch of files. Here is one possibility from my side, where you have a solid overwiew of all .NET versions.: | 1-4 | Versionen | Download | | 24.03.2005 | 10.03.2011 |
| ObjektScope.htm | Lokaler Objekt-Scope unter .NET am Beispiel StreamWriter | Lokal definierte Variablen werden unter .NET automatisch freigegeben. [MSDN:Automatische Speicherverwaltung] Aber Achtung. Die CLR kann die Objekte (zugeordneten Speicher der Variaben) "einige Zeit" festhalten. Das heisst intern, dass das Objekt nur "zur Zerstörung freigegeben" ist, aber dieses noch nicht ausgeführt wurde. Deswegen können unten beschriebene Effekte entstehen: | 1.1/2.0 | Implementation | | | 26.11.2005 | 02.03.2006 |
| OpenFileThumbnail.htm | OpenFileDialog in beliebiger Ansicht öffnen | Die Ansicht des OpenFileDialog's von .NET ist nicht direkt über verwaltetete .NET-Methoden beeinflussbar. Eine Möglichkeit ist, spezielle bekannte Klassennamen der Windows-Dialog-Fenster mit PInvoke zu erkennen und diesen eine spezielle Meldung zu senden. Dieses Wissen ist durch Tools wie Spy++ aus den Visual Studio Tools-Menü herauszufinden. Getestet unter XP und Vista.
| 2.0 | Shell Interaktion | Download | | 23.01.2007 | 23.01.2007 |
| OutlookTermine.htm | Outlook Termine exportieren | Hier wird beschrieben, wie man Outlook Termine über Automation in einen DataTable füllt, um die Daten dann in einem DataGridView anzuzeigen. | 2.0 | Office | Download | | 19.02.2006 | 19.02.2006 |
| OwnEventArgs.htm | Eigene EventArgs | Beispiel für die Verwendung von EventArgs-Eigenschaften wie "Cancel" in eigenen Klassen. | 2.0 | Implementation | Download | | 16.07.2006 | 16.07.2006 |
| PerfCount.htm | Beispiel für eigene PerformanceCounter | Leistungsindikatoren (PerformanceCounter) sind eine geeignete Art um Messungen vielerlei Art anderen Anwendungen zugänglich zu machen. Windows selber bietet über das Tool Perfmon eine anpassbare flexible Monitoring-Anwendung, mit der nicht nur vordefinierte, sondern auch eigene Leistungsindikatoren darstellbar sind.
| 2.0 | Implementation | Download | | 17.12.2006 | 17.12.2006 |
| PlugIn.htm | PlugIn über Interface | Beispiel für ein simples PlugIn über eine Schnittstelle mit Auslösung eines Events. | 2.0 | Implementation | Download | | 21.04.2007 | 21.04.2007 |
| Pop3Client.htm | POP3Client | Eine kleine Library zum Zugriff auf POP3. Andere Links: A POP3 Client in C# .NET Retrieve Mail From a POP3 Server Using C# Google-Suche: POP3 C#
| 1.1 | POP3 | Download | | 01.03.2006 | 28.06.2006 |
| PositionGroesseSichern.htm | Position und Größe von Forms sichern | Sie können die Position und die Größe Ihrer Form recht einfach sichern, indem Sie die Bounds- und die RestoreBounds-Eigenschaft der Form zusammen mit demMinimized-Zustand des Fensters berücksichtigen. Im minimierten Zustand geht man über die RestoreBounds, im normalen über die Bounds. | 2.0 | Windows Forms | Download | | 18.12.2007 | 15.05.2009 |
| PropertyGridCategorySort.htm | Kategorien eines PropertyGrid's sortieren | Während es unter .NET 1.1 noch den Trick der Benennung mit "\tErsteKategorie" und "\t\tZweiteKategorie" gab, ist Visual Studio 2005 diesbzgl. genauer geworden und zeigt diese Zeichen nun an, was den Trick ins Leere laufen lässt. Eine kleine Korrektur-Methode kann den Umstand (für VS 2005) wieder rückführen. (Der Code ist noch rudimentär, erfüllt aber schon seine Funktion).
| 1.1/2.0 | PropertyGrid | | | 03.06.2005 | 05.12.2005 |
| PropertyGridConnectionString.htm | PropertyGrid ConnectionString Editor | Das PropertyGrid in Windows Forms ist sehr flexibel, aber aus Rechte-Gründen ist die Eingabe eines ConnectionString in Einstellungen normal nicht möglich (im Application Scope). Hier wird ein Weg über die typsicheren Settings gezeigt, in denen ein Windows-ConnectionString-Editor eingeblendet wird, wenn im PropertyGrid der Button zum Editieren der DB-Verbindungszeichenkette geklickt wird. | 2.0, 3.5 | PropertyGrid | Download | | 13.05.2009 | 15.05.2009 |
| PropertyGridReadOnly.htm | Dynamische "Attribut-Änderung" beim PropertyGrid | Hier wird eine abgeleitete TextBox FdPropTest an das SelectableObject eines PropertyGrids gebunden. Wenn nun zur Laufzeit die Eigenschaft Vorname geändert wird, bekommt diese das Attribut ReadOnly und eine andere Description. Der Beispiel-Code ist noch rudimentär, erfüllt aber schon seine Funktion.
| 1.1 | PropertyGrid | | | 25.10.2005 | 25.10.2005 |
| ReflectionEvents.htm | Mögliche Objekt-Events durchlaufen am Beispiel DataGrid | Nicht nur Properties, Felder und Methoden sind über System.Reflection einsehbar, auch alle Events können sichtbar gemacht werden. Die Methode Type.GetEvents ist der Schlüssel dazu im folgenden kleinen Codebeispiel: | 1.1 | Datagrid, Reflection | | | 24.05.2005 | 24.05.2005 |
| ReportViewer.htm | ReportViewer mit Messinstrument an Objekt-Datenquellen | Schon mit Standard-Controls aus Visual Studio lassen sich im Berichtswesen sehr gute Ergebnisse erzeilen. Oft noch unbekannt sind die vielen zusätzlichen Komponenten die über die Berichte zur Verfügung stehen. Auch verschiedene Designer-Hosts sind nutzbar. "ReportViewer", "Microsoft SQL Server 2008 R2 Report Builder 3.0" oder "Business Intelligence Development Studio" und "SQL Server Reporting Services" können zusammen oder separat, im Web oder lokal genutzt werden. Obwohl der ReportViewer meistens zur Darstellung größerer Datenmengen benutzt wird, hier ein Beispiel für den Gebrauch als Pseudo-Steuerelement für ein Messgerät (Gauge), das an einen Wert in der Businesslogik gebunden ist (hier die Sekunden der aktuellen Zeit) : | 4 | Berichtswesen | Download | | 19.06.2010 | 19.06.2010 |
| RsaPrivatePublic.htm | Verschlüsselung mit öffentlichem Schlüssel | Erläuterung eines Beispiel-Szenarios von asymmetrischer Verschlüsselung mit Hilfe des RSACryptoServiceProvider's unter Nutzung eines privaten und eines öffentlichen Schlüssels.
| 2.0 | Kryptografie | Download | | 05.05.2007 | 05.05.2007 |
| RunderText.htm | Runder Text | Für das Zeichnen von "rundem Text" gibt es schon ein paar Implementations-Ansätze im Internet. Zum Beispiel: "Customized Text - Orientated Controls in C# - Part I (Label Control)". | 2.0 | Implementation | Download | | 18.07.2006 | 18.07.2006 |
| ScrollListView.htm | ListView mit Scroll-Events | Einige Windows.Forms-Controls haben keine Scroll-Ereignisse unter .NET. Man kann diese aber nachrüsten, indem man zunächst das normale Control (hier ListView) nutzt. Dann können die Vorkommen von "System.Windows.Forms.ListView" durch "ScrollListView" ersetzt werden. Schliesslich können die Events "HScrollChanged" / "VScrollChanged" ganz normal über das Eigenschaften-Fenster benutzt werden. | 1.1 | ListView | Download | | 12.01.2006 | 17.03.2006 |
| Security.htm | SecurityException bei Zugriff über LAN | Vielfach möchte man unter dem .NET Framework eine Exe (Assembly) über das Netzwerk aufrufen. Dies ist aber standardmässig gesperrt, erst ab dem .NET Framework 3.5 SP1 wird einer Assembly wieder FullTrust gegeben, wenn sie über eine Netzwerkfreigabe aufgerufen wird. Hier die verschiedenen Möglichkeiten, dies zu ermöglichen: | 1.1/2.0 | Sicherheit | | | 16.11.2005 | 19.07.2008 |
| SerializeControls.htm | Controls automatisch serialisieren | Controls sind standardmässig nicht serialisierbar. Wie man Einstellungen von Controls dennoch automatisch persistieren kann, zeigt dieser Artikel in einem pragmatischen Ansatz, der nur öffentliche Wertetypen serialisiert. Die Serialisierung wird über denTypeDescriptormit einer invarianten Kultur überIXmlSerializableimplementiert. Achtung, es gibt weitere Dinge zu berücksichtigen, dies ist nur ein Ansatz. Ein Vorteil ist, dass hier dietypsicheren"Properties.Settings" benutzt werden, sodass die Persistierung gleich ins richtige Benutzer-Verzeichnis kommt. | 2.0 | Serialisierung | Download | | 22.03.2008 | 22.03.2008 |
| SettingsExample2.htm | Typsichere Settings mit eigenen Array-Typen | Typsichere Settings (Einstellungen) sind unter .NET 2.0 ein neues Feature, dass sogar eigene Klassen über Designer einbindbar macht. Hier ein Beispiel einer Liste von Instanzen eines eigenen Datentyps "Daten".
| 2.0 | Implementation | Download2 | | 27.12.2006 | 03.07.2008 |
| ShellProperties.htm | Shell Properties als Übersicht | Windows Desktop Search SQL Links. Eine Übersicht. | * | Vista | | | 01.08.2007 | 01.08.2007 |
| ShGetFileInfo.htm | PInvoke und Interop-Code am Beispiel ShGetFileInfo | Der folgende Code stellt Kommunikations-Möglichkeiten zwischen .NET-C# und der Windows API beispielhaft anhand der SHGetFileInfo-Funktion, SHFILEINFO-struct und dem Enum SHGFI dar. Die Funktion wurde auf XP/Prof und Windows98 getestet. Relevante Interop-Links werden aufgeführt.
| 1.1 | Interop | | | 24.05.2005 | 24.05.2005 |
| ShowDialog.htm | Implementation von ShowDialog unter .NET 1.1 | Der folgende Code ist komplett von Lutz Roeders Reflector erstellt worden. Er spiegelt die Framework-Implementation folgender Methode wieder: System.Windows.Forms.Form.ShowDialog(). | 1.1 | Windows Forms | | | 16.08.2005 | 16.08.2005 |
| ShowViewColumn.htm | Schema Informationen aus Datenbanken ermitteln | Der Artikel stellt Möglichkeiten der Extraktion von Schemainformationen wie Feldlänge, FeldTyp, etc. einer speziellen Spalte einer angegebenen Tabelle dar. Benutzt wird die OleDbConnection.GetSchema-Methode und die Microsoft-Referenz zu den Schemaauflistungen.
| 2.0 | Datenbank | Download | | 21.07.2007 | 22.07.2007 |
| SummarysAuslesen.htm | Summary Beschreibungen auslesen | Summary (Zusammenfassungs) Beschreibungen kann man lokalisiert aus einer XML-Datei lesen. Hier wird das beispielhaft über den System.Xml.Linq Namensraum mit derErweiterungsmethode:XPathEvaluate gemacht. Eine umfassende Bibliothek für diesen Bereich ist zum Beispiel [Jolt.NET] - (mein Beispiel benutzt diese aber nicht): | 4.0 | C# Sprache | Download | | 06.02.2011 | 06.02.2011 |
| TcpClientServer.htm | Client-Server Kommunikation mit dem TcpClient und TcpListener | Ein einfaches Beispiel einer synchronen Socket-Kommunikation mit TcpClient und TcpListener. Dabei wird in den angehängten Downloads unter anderem auch deutlich, dass synchrone Sockets nicht das User Interface blockieren müssen, wenn man die Methoden in Threads ausführt. | 2.0/3.5 | Client-Server | Download | | 25.07.2008 | 10.05.2009 |
| ThreadLogic.htm | Threads in WinForms über Logik synchronisieren | Hier wird ein Beispiel gegeben, wie Threads über Logik (hier boolesche Variablen) synchronisiert werden und selbsttätig auslaufen. Speziell im Windows Forms Bereich sollte nach dem Start von Threads zeitnah die aufrufende Methode beendet werden, damit die MessageLoop die Applikation reagierend halten kann. Hier werden zwei "long running" Threads gestartet und ein Event (AllCompleted) ausgelöst, wenn beide Threads fertig sind. | 1.1 | Threading | Download | | 05.04.2006 | 05.04.2006 |
| Timer.htm | Timer | Timer-Klassen gibt es mehrere im .NET Framework. Hier ein paar Hintergründe und Verhaltensweisen, die speziell die Überlappungsszenarien darstellen, wenn der Timer-Handler noch nicht fertig ist, aber bereits ein neues Elapsed-Ereignis ansteht. Als erstes der Systems.Timers.Timer: | 2.0, 3.5 | Steuerklassen | Download | | 01.12.2008 | 01.12.2008 |
| ToolStripMerge.htm | Merging von ToolStripItem's | Merging (Kombinieren/Mischen) von ToolStripItem's innerhalb eines ToolStripPanel's ist von .NET 2.0 nur für Menü-Typen wie [MenuStrip, ToolStripDropDownMenu, ToolStripMenuItem] vorgesehen. Das Beispiel demonstriert die Möglichkeit in einem ToolStripPanel im MDI-Szenario verschiedene ToolStripItem's (hier ToolStripButton's) zuzufügen, bzw. zu entfernen, je nachdem, ob dieser schon vorhanden ist. | 2.0 | Windows Forms | Download | | 25.01.2006 | 25.01.2006 |
| TwoLineBinding.htm | Automatisches Nummerieren von Steuerelement-Array's | Will man Steuerelemente automatisch nummerieren, so kann man dies über ihren Namen erreichen. Hier wird eine von CollectionBase abgeleitete Klasse benutzt, die in ihrer Add-Methode über ein BinarySearch(tbx,textBoxComparer) ein Insert(index,tbx) aufgerufen wird. Der textBoxComparer vergleicht die TextBoxen anhand der Zahl in den Steuerelement-Namen durch ein einfaches Regex. In diesem Beispiel werden die Werte aus einer Access-DB geholt und nach Änderung in diese zurück gespeichert.
| 1.1, [Download] | Windows Forms | Download | | 10.12.2005 | 29.05.2007 |
| TwoLineBinding2.htm | Steuerelement-Array's serialisieren und DataBinding | Will man Steuerelemente automatisch serialisieren, so kann man dies z.B. über ihren Namen erreichen. Hier werden die typsicherenProperties.Settingszur Serialisierung benutzt. Dabei wird eineList<TextBox>Klasse benutzt, die über IXmlSerializable in der Lage ist, die Controls mit einer vorher definierten Anzahl an Eigenschaften, in die BenutzerSettings zu serialisieren. Die Änderungen an den TextBox-Inhalten des Benutzers, werden automatisch gesichert. Dies passiert über DataBindings und BindingSource.
| 2.0, [Download] | Windows Forms | Download | | 02.08.2008 | 02.08.2008 |
| TypeConverter.htm | | | | | | | | |
| TypesafeProps.htm | Typsicherere Eigenschaften bei Datenbindung | In MSDN-Beispielen werden oft DataPropertyName's über String's gesetzt. Dies ist möglich, jedoch kann man das auch "typsicherer" erledigen. | 2.0 | Datenbindung | Download3 | | 07.08.2006 | 23.10.2010 |
| ValidationExample.htm | Beispiel-Validierung mit dem ErrorProvider | Der Beispiel-Code zeigt exemplarisch eine mögliche Implementierungs-Strategie für die Validierung mit dem ErrorProvider bei Windows Forms. Die this.Controls(der Form) werden rekursiv durchlaufen und allen TextBox'en dabei eine Validating-Event-Behandlung zugefügt. Diese kann dann allgemein an einer Stelle abgefragt und implementiert werden. | 1.1/2.0 | Windows Forms | Download | | 08.10.2005 | 11.04.2007 |
| VbResource.htm | Resource-Einbindung in VB.NET 2.0 - Visual Studio .NET 2005 | Bei Visual Studio 2005 hat sich die Ressourcen-Einbindung verbessert und kann nun streng typisiert abgerufen werden. Der Designer setzt eigene:FriendReadOnly Property String2() As String Eigenschaftenein, die über ein Resources-Modul abgerufen werden können. Hier ein paar Vorgehensweisen mit einer zusätzlichen Sprache: | 2.0 | Ressourcen | | VB.NET | 25.09.2005 | 22.06.2007 |
| VersionInfo.htm | Betriebssystemerkennung mit C# .NET | Dieser (portierte) MSDN Quickie zeigt Ihnen, wie Sie aus C#.NET heraus ermitteln, auf welcher Windowsversion Ihre Anwendung abläuft.Das .NET Framework macht es einfach, die Versionsnummer des eingesetzten Betriebssystems zu ermitteln: Hierfür steht die Klasse OperatingSystem im Namespace System zur Verfügung. Neben der Versionsnummer selber benötigen Sie weiterhin die Information, ob ein DOS- ein oder NT-basierendes Windows eingesetzt wird - beide Informationen erhalten Sie durch Abfrage der Eigenschaften Version.Major,Version.Minor und Platform der Klasse.
| 1.1/2.0/3.5 | Versionierung | | | 12.06.2003 | 22.08.2009 |
| VsInstanz.htm | Laufende Visual Studio Instanz filtern | Das Problem, dass ein GetActiveObject("VisualStudio.DTE")nur die zuerst erstellte (registrierte) Visual Studio Instanz darstellt, kann man durch eine Durchsuchung des ROT (Running Object Table), nach einer Instanz, dessen Prozess-ID am Ende des "runningObjectName" steht und dessen ProgID vorneweg steht, lösen.
| 2.0 | Implementation | | | 04.04.2007 | 09.04.2007 |
| WebBrowserContextMenu.htm | Eigenes Kontextmenü für aktives Element im WebBrowser | Um ein benutzerdefiniertes Kontextmenü für den WebBrowser zu erstellen, gibt es mehrere Möglichkeiten und Szenarien. Hier wird ein geändertes KontextMenü eine Selektion mit der rechten Maustaste ausgeführt, um das Outer- oder InnerHTML anzuzeigen. Im [Download2] ist auch das Erkennen des selektierten Textes aufgezeigt (IE: document.selection.createRange). | 3.5 | Web, WinForms | Download2 | | 25.12.2009 | 25.12.2009 |
| WiderstandsBerechnung.htm | Widerstands-Berechnung in C# | Hier wird kurz in einem Beispiel-Projekt aufgezeigt, wie man ein kleines Tool in C# schreiben kann, was den Widerstand in Ohm und die Toleranz anhand der Ringe eines Widerstandes berechnet. | 4.0 | Tools | Download | | 16.04.2011 | 16.04.2011 |
| WindowsInstaller.htm | WindowsInstaller: MSI Informationen ändern oder anzeigen | Unter .NET kann man recht einfach unter Verweise COM-Biliotheken einbinden. Hier wird die "Microsoft Windows Installer Object Library" benutzt, um eine MSI-Datei nachträglich zu ändern, oder deren Werte auszulesen. Auch die Anbindung nativer "MSI.dll"-APIs ist möglich. Beachten Sie, dass es auch umfangreiche Scripte im Windows Installer SDK gibt, dies ist nur ein Beispiel, dass man diese Thema .NET C# sehr einfach und typsicher behandeln kann.
| 4.0 | Setup | Download | | 31.01.2009 | 16.04.2011 |
| WM_Msg_NET.htm | WM-Message-Definitionen vom .NET Framework holen | Windows-Meldungen (etwa WM_CLOSE) werden unter .NET des öfteren benötigt, um besondere Verhaltensweisen in Programmen zu erreichen. Deswegen bietet es sich an, einen enum dafür anzulegen. Anstatt diese WM_* Konstanten aus dem Plattform-SDK zu holen (NG-Posting), kann man auch .NET "beauftragen", indem man private Konstanten "anzapft". So kann man sich leicht eine schon recht ausführliche CS-Datei erzeugen. Achtung, nicht jede Message ist auch unter jedem Betriebssystem erlaubt. Der Hashtable ist übrigens notwendig, da die Konstanten in den einzelnen Assemblies teilweise doppelt definiert sind. | 1.1 | Interop | | | 29.10.2005 | 29.10.2005 |
| WmNotUsed.htm | Liste der vom .NET Framework 1.1 nicht definierten WM_MESSAGES | In einem anderen Artikel beschreibe ich, wie man über Reflection private Konstanten des .NET Frameworks auflisten kann. Dieses ist die Ausgabe des obigen Programmes. | 1.1 | Interop | | | 29.10.2005 | 29.10.2005 |
| WordFieldInsert.htm | Einfügen eines Feldes in Word mit C# | Felder sind unter Microsoft Word® eine flexible Lösung um variable Inhalte anzuzeigen und zu synchronisieren. Eine Automation über C# bietet sich deswegen des öfteren an. Hier für Word® 2003. | 1.1 | Office | Download | | 30.10.2005 | 17.05.2005 |
| WpfListBoxItemTreeViewItem.htm | WPF ListBoxItem, TreeViewItem und Button Templates | Es werden die Standard-Templates des WPF-ListBoxItem, TreeViewItem und Button gezeigt. | 3.0 | WPF Templates | | | 05.11.2007 | 25.05.2008 |
| WpfObservable.htm | WPF ObservableCollection und INotifyCollectionChanged | Dieser Artikel zeigt eine Möglichkeit in WPF, wie eine ObservableCollection<T> über eine Änderung eines seiner Elemente nach aussen hin benachrichtigen kann.
| 3.5 | WPF | Download | | 17.07.2008 | 17.07.2008 |
| XmlAsCsharpClass.htm | XML als C# Klasse | Will man ausgehend von einer XML-Datei eine C#-Klasse benutzen/erstellen, um deren Werte ggf. einlesen oder speichern zu können, so kann man zum Beispiel die im Folgenden beschriebene Methode über den XmlSerializer anwenden. Selbst generische List<T> Typen werden dabei automatisch serialisiert. Die Modifikation der Werte kann z.B. über ein PropertyGrid vom User vorgenommen werden, indem man das Array-Objekt einfach der SelectedObject-Eigenschaft des PropertyGrid's zuweist:
| 2.0 | Implementation | Download | | 27.12.2006 | 02.01.2007 |
| XmlSerializer.htm | Mit dem XmlSerializer eigene Objekte serialisieren und deserialisieren | Mit .NET ist es sehr einfach eigene Objekte (aus eigenen Klassen) in eine Datei zu schreiben und sie dort wieder heraus zu holen. Über das moderne und allseits akzeptierte XML-Format hat man auch gleichzeitig interoperable Schnittstellen, die den Wert der Anwendung erhöhen. Aber auch eine rein binäre Persistierung ist möglich. Folgende Beispielanwendung erzeugt aus einem Person[ ]-Objekt einepersonen.xml und liest sie danach wieder aus. | 1.1/2.0 | Serialisierung | Download .NET 2.0 | | 28.09.2005 | 25.11.2007 |
| XmlTextReader.htm | XmlTextReader Bug bei Eingabe-Stream nach SP1 | Nach einem Upgrade von .NET-1.1 auf .NET-1.1-SP1, kann es u.U. beim XmlTextReader Probleme beim Einlesen geben. Hier ein Workaround dafür.
| 1.1 | Serialisierung | | | 08.04.2005 | 08.04.2005 |
| XmlXsdLesenSchreiben.htm | Aus XML mittels XSD.exe automatisch Schreib-Lese-Zugriffe generieren | Hier wird gezeigt, wie man von XML automatisch zu einer Klassen-Repräsentation innerhalb des Codes kommen kann und durch ein automatisch erstelltes DataSet einen Schreib-Lese-Zugriff bekommt. | 2.0 | XML | Download | | 21.10.2006 | 30.04.2007 |
| XslTransform.htm | XSL Transformation | Beispiel einer Transformation von XML nach HTML über XslCompiledTransform.Transform().
| 2.0 | Implementation | Download2 | | 15.07.2006 | 10.02.2008 |