Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
AvalonEditControl (Code Completion / Intellisense für Windows Forms)
dr4g0n76
myCSharp.de - Experte

Avatar #avatar-1768.jpg


Dabei seit:
Beiträge: 3047
Herkunft: Deutschland

Themenstarter:

AvalonEditControl (Code Completion / Intellisense für Windows Forms)

beantworten | zitieren | melden

Ausgehend von untere anderem diesen Threads

Eine Art IntelliSense nachbauen

habe ich mich entschlossen SharpDevelop Komponenten zusammenzusetzen und aus dieser eine Control zu machen, mit der Intellisense angezeigt werden kann.

Die Ehre für die Komponente gebührt also nicht mir. Sondern ich setze sie hier lediglich zusammen.

Das einzige was ich gemacht habe ist in AvalonEditControl das Ganze zur Verfügung gestellt.

Es ist erstmal eine "As Is" Version.

Komponente als Windows-Forms Control, die Intellisense zur Verfügung stellt:

In AvalonEdit ist es "relativ einfach" möglich eine CodeCompletion zu implementieren.
Die Mechanismen sind ja vorhanden, damit es aber auch "fliegt", muss(e) man noch einiges tun.

Die Komponente ist so vorbereitet, dass sie auf Windows Forms Projekten benutzt werden kann, auch wenn es eine WPF-Komponente ist, dies funktioniert durch den ElementHost.

Da nur 2 MB Dateigrösse für das anhängen erlaubt ist, habe ich die DLLs in ein extra Verzeichnis ausgelagert.

(Sonst wäre das Archiv knapp 4 MB gross gewesen)

Ich habe hier eine Kurzanleitung zusammengestellt:

1.) Zur Installation (halbautomatisch):

Nach dem Entpacken mit cmd also in das Verzeichnis wechseln, wo ihr die Dateien entpackt habt, dann in den Unterordner DLL navigieren.

Drückt auf Finish.bat.

Damit werden die DLLs in die entsprechenden Ordner kopiert.

2.) Wer es manuell machen möchte:
Schlagwörter: Avalon Edit, Code Completion, Intellisense, WPF, Windows Forms

Diese Anleitung findet sich nochmal als "Readme.txt" im Archiv selbst.

P.S.: Weiteres zur Komponente werde ich in folgenden Posts hier im Thread schreiben.
Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von dr4g0n76 am .
Attachments
Seit der Erkenntnis, dass der Mensch eine Nachricht ist, erweist sich seine körperliche Existenzform als überflüssig.
private Nachricht | Beiträge des Benutzers
dr4g0n76
myCSharp.de - Experte

Avatar #avatar-1768.jpg


Dabei seit:
Beiträge: 3047
Herkunft: Deutschland

Themenstarter:

beantworten | zitieren | melden

Hier die Initialisierung:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

using AvalonCodeCompletion;

namespace AvalonIsHere
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            AvalonCodeCompletionControl avalonEditControl = new AvalonCodeCompletionControl();
            avalonEditControl.LoadCustomHighlightingDefinition();
            avalonEditControl.SelectHighlighting("c#");
            avalonEditControl.OpenFile("Sample1.cs");
            avalonEditControl.AddTo(this);
            
        }
    }
}

LoadCustomHighlightingDefinition
lädt die xshd Datei, die im Projekt vorhanden ist (Default Parameter), ihr könnt natürlich jede beliebige Datei mit vollqualifiziertem Namen üebergeben.

SelectHighlighting("c#")
wählt natürlich - was auch sonst ;-) - c# als Syntax Highlighing aus.

OpenFile("Sample1.cs")
lädt die entsprechende Klasse.

Und

AddTo(this)
wird benötigt, um die WPF Komponente zu einer Windows Form Komponente (Control) hinzuzufügen.
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von dr4g0n76 am .
Attachments
Seit der Erkenntnis, dass der Mensch eine Nachricht ist, erweist sich seine körperliche Existenzform als überflüssig.
private Nachricht | Beiträge des Benutzers