Hallo Joe,
Zitat:
Original erstellt von JoeG:
Hallo Forum,ich möchte ein eigenes Dialogfenster für ein VB.Net Programm erzeugen.
Es fehlt mir leider die Lizenz für den „Interface Styler“,
kann ich das auch mit „SharpDevelop 2.1“ machen?
Ich würde mich über eine kleine Anleitung oder ein Beispiel freuen.
Danke
Joe
ich habe auch keine Lizenz für den UI-Styler und auch keine dotnet_author-Lizenz, also gehe ich den Umweg über "normale" VB.NET Forms, die ich als Klasse in ein Journal einbinde.
Ich kompiliere das Ganze also nicht, sondern benutze nur den generierten Code um ihn in das Journal als eigene Klasse einzubinden.
Ich gehe dabei folgendermassen vor:
1. In SharpDevelop eine neue Projektmappe anlegen (VB.NET -> Windowsanwendung -> Windowsanwendung).
2. In Projekt -> Projektoptionen -> Imports den Import auf "System.Collections.Generic" entfernen.
2. Datei MainForm.Designer löschen
3. Datei Program.vb löschen
4. Datei MainForm.vb öfnnen, und den Inhalt löschen und durch folgende Vorlage ersetzen (siehe auch Dateianhang):
Code:
Imports System
Imports System.Drawing
Imports System.Windows.FormsPublic Class MainForm
Inherits System.Windows.Forms.Form
Public Shared Sub Main
Dim fMainForm As New MainForm
fMainForm.ShowDialog()
End Sub
Public Sub New()
MyBase.New
'
' The Me.InitializeComponent call is required for Windows Forms designer support.
'
Me.InitializeComponent
'
' TODO : Add constructor code after InitializeComponents
'
End Sub
#Region " Windows Forms Designer generated code "
' This method is required for Windows Forms designer support.
' Do not change the method contents inside the source code editor. The Forms designer might
' not be able to load this method if it was changed manually.
Private Sub InitializeComponent()
'
'Form1
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(292, 266)
Me.Name = "MainForm"
Me.Text = "MainForm"
End Sub
#End Region
End Class
Mit diesen Änderungen kannst du es jetzt mal testweise für .NET 1.1 kompilieren (Projekt -> Projektoptionen -> Kompilieren -> ZielFramework).
5. Jetzt im Designer den neuen Dialog so entwerfen, und nicht vergessen den Dialogelementen auch entsprechende Ereignisse zu verpassen (bsplw. alles abbrechen lassen, wenn man den Abbruch-Button drückt). Das geht im PropertyBrowser (da wo die Eigenschaften angezeigt werden) wenn man in der Toolbar auf den Blitz klickt, dort sind alle Ereignisse vorhanden, die das Element unterstützt (bsplw. "Click" für einen Button, es gibt aber noch einige mehr.) Auf das gewünschte Ereignis einen Doppelklick machen und man wechselt in den CodeEditor an die entsprechende Stelle für das Ereignis. Nun muss man noch den Code eingeben, was passieren soll....
6. Wenn alles fertig designed ist, muss man sich überlegen, wie man den Dialog mit Daten füttert (bsplw. einen Standardtext für Textboxen oder Labels) und wie man wieder an die Daten herankommt.
Das ist der bei weitem schwerste Teil des ganzen.
7. Wenn alles einigermaßen steht kann man die Klasse aus der Datei MainForm.vb einfach ganz unten in das Journal kopieren und bsplw. mit "Dim MeinDialog As MainForm = New MainForm()" eine Instanz vom neuen Dialog erstellen, und mit "MeinDialog.ShowDialog()" wird dieser auch angezeigt. Klingt simpel (?) ist es aber nicht wirklich....
Hier ein Beispiel, wie ich es schonmal im Forum gepostet hatte:
http://ww3.cad.de/foren/ubb/Forum442/HTML/000150.shtml#000020
Naja, ich weiss, dass man Einiges bestimmt besser lösen kann, aber sowas habe ich jetzt schon mehrere Monate so ähnlich im Einsatz und läuft super...
Falls jemand Vorschläge zur Vereinfachung hat, immer her damit
.
Ciao und viel Spass beim Testen
Mario
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP