vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Inputbox für Mono Teil 1 
Autor: vbtest2
Datum: 25.10.06 12:36

Hallo,

ich habe eine ähnliche Inputbox, weil die mitgelieferte Version nicht unter Mono läuft:

Public Class Nachrichtenkasten
    Inherits System.Windows.Forms.Form
    Private WithEvents btnFertig As Button
    Private WithEvents btnAbbruch As Button
    Private lblMeldung As Label
    Private txtEingabe As TextBox
    Private components As System.ComponentModel.Container = Nothing
    Private strEingabe As String
    Dim drtRückgabewert As DialogResult
 
 
    Public Sub New(ByVal strMeldung As String, ByVal strTitel As String, _
      Optional ByVal strVoreinstellung As String = "", Optional ByVal XPos As _
      Integer = -1, Optional ByVal YPos As Integer = -1)
 
        InitializeComponent(strMeldung, strTitel, strVoreinstellung, XPos, YPos)
 
    End Sub
 
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
            If Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub
 
    Private Sub InitializeComponent(ByVal strMeldung As String, ByVal strTitel _
      As String, ByVal strVoreinstellung As String, ByVal XPos As Integer, _
      ByVal YPos As Integer)
        Me.txtEingabe = New TextBox()
        Me.btnFertig = New Button()
        Me.lblMeldung = New Label()
        Me.btnAbbruch = New Button()
        Me.SuspendLayout()
        '
        'lblMeldung
        '
        Me.lblMeldung.Location = New System.Drawing.Point(0, 0)
        Me.lblMeldung.Name = "lblMeldung"
        Me.lblMeldung.Size = New System.Drawing.Size(292, 25)
        Me.lblMeldung.TabIndex = 3
        Me.lblMeldung.Text = strMeldung
        '
        'txtEingabe
        '
        Me.txtEingabe.Location = New System.Drawing.Point(16, 26)
        Me.txtEingabe.Name = "txtEingabe"
        Me.txtEingabe.Size = New System.Drawing.Size(256, 20)
        Me.txtEingabe.TabIndex = 2
        Me.txtEingabe.Text = strVoreinstellung
        '
        'btnFertig
        '
        Me.btnFertig.DialogResult = System.Windows.Forms.DialogResult.OK
        Me.btnFertig.Location = New System.Drawing.Point(208, 51)
        Me.btnFertig.Name = "btnFertig"
        Me.btnFertig.TabIndex = 1
        Me.btnFertig.Text = "Fertig"
        '
        'btnAbbruch
        '
        Me.btnAbbruch.DialogResult = System.Windows.Forms.DialogResult.Cancel
        Me.btnAbbruch.Location = New System.Drawing.Point(120, 51)
        Me.btnAbbruch.Name = "btnAbbruch"
        Me.btnAbbruch.TabIndex = 0
        Me.btnAbbruch.Text = "Abbruch"
        '
        'Nachrichtenkasten
        '
        Me.AcceptButton = Me.btnFertig
        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
        Me.CancelButton = Me.btnAbbruch
        Me.ClientSize = New System.Drawing.Size(292, 77)
        Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.lblMeldung, _
          Me.btnAbbruch, Me.btnFertig, Me.txtEingabe})
        Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog
        Me.MaximizeBox = False
        Me.MinimizeBox = False
        Me.Name = "Nachrichtenkasten"
        Me.Text = strTitel
        Me.ResumeLayout(False)
        Me.Location = New Point(XPos, YPos)     'Position angeben
 
    End Sub
 
    Public ReadOnly Property Eingabe() As String
        Get
            Return strEingabe
        End Get
    End Property
 
    Private Sub btnFertig_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles btnFertig.Click
        drtRückgabewert = DialogResult.OK
        strEingabe = txtEingabe.Text        'Eingabe zuweisen
    End Sub
 
    Private Sub btnAbbruch_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles btnAbbruch.Click
        drtRückgabewert = DialogResult.Cancel
        strEingabe = Nothing   'Eingabe löschen
    End Sub
 
    Public Function Schließen()
        Return drtRückgabewert
        Dispose()
    End Function
 
End Class
Dim s As New Nachrichtenkasten("BlaBlaBla BlaBlaBla BlaBlaBla BlaBlaBla" & _
  "BlaBlaBla BlaBlaBla BlaBlaBla BlaBlaBla BlaBlaBla", "Titel", _
  "Voreinstelliung", 1, 1)
 
        s.ShowDialog()
 
        If s.Schließen = DialogResult.Cancel Then MsgBox("Abbruch")
 
        MsgBox(s.Eingabe)
Weiter in Teil 2
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Rückgabe von InputBox 
Autor: Zero-G.
Datum: 06.04.06 12:35

Hallo NG

Ich übergebe per InputBox eine Zahl vom User an das Programm. - Habe jetzt aber das Problem, dass ich as Abbrechen/Ende nicht mehr benutzen kann. da ja als MsgBoxResult auch eine Zahl übergeben wird.

Wie kann ich das umgehen!?

mfg
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Rückgabe von InputBox 
Autor: Snoopy
Datum: 06.04.06 21:12

Hi Zero-G.

und was spricht dagegen, eine eigene InputBox zu bauen
Hier eine InputBox Marke Eigenbau - lege in deinem Projekt eine neue Klasse an und
füge folgenden Code in das Codefenster ein:
Public Class clsInputBox
 
   Inherits System.Windows.Forms.Form
 
   Friend WithEvents cmdAbbruch As System.Windows.Forms.Button
   Friend WithEvents cmdOK As System.Windows.Forms.Button
   Friend WithEvents txtValue As System.Windows.Forms.TextBox
   Friend WithEvents lbCaption As System.Windows.Forms.Label
 
   Private m_Result As String
 
   Public Sub New()
      MyBase.new()
   End Sub
 
   Public Overloads Function ShowDialog(ByVal sCaption As String, ByVal sTitle _
     As String, ByRef sValue As String, ByVal sDefault As String) As _
     System.Windows.Forms.DialogResult
      InitializeComponent()
 
      Me.lbCaption.Text = sCaption
      Me.txtValue.Text = sDefault
      Me.Text = sTitle
 
      ShowDialog = MyBase.ShowDialog()
      sValue = m_Result
 
      Me.Close()
   End Function
 
   Private Sub InitializeComponent()
      Me.lbCaption = New System.Windows.Forms.Label
      Me.txtValue = New System.Windows.Forms.TextBox
      Me.cmdOK = New System.Windows.Forms.Button
      Me.cmdAbbruch = New System.Windows.Forms.Button
      Me.SuspendLayout()
      '
      'lbCaption
      '
      Me.lbCaption.AutoSize = True
      Me.lbCaption.Location = New System.Drawing.Point(21, 34)
      Me.lbCaption.Name = "lbCaption"
      Me.lbCaption.Size = New System.Drawing.Size(31, 13)
      Me.lbCaption.TabIndex = 0
      Me.lbCaption.Text = "Input"
      '
      'txtValue
      '
      Me.txtValue.Location = New System.Drawing.Point(144, 32)
      Me.txtValue.Name = "txtValue"
      Me.txtValue.Size = New System.Drawing.Size(184, 20)
      Me.txtValue.TabIndex = 1
      '
      'cmdOK
      '
      Me.cmdOK.DialogResult = System.Windows.Forms.DialogResult.OK
      Me.cmdOK.Location = New System.Drawing.Point(88, 88)
      Me.cmdOK.Name = "cmdOK"
      Me.cmdOK.Size = New System.Drawing.Size(75, 23)
      Me.cmdOK.TabIndex = 2
      Me.cmdOK.Text = "OK"
      Me.cmdOK.UseVisualStyleBackColor = True
      '
      'cmdAbbruch
      '
      Me.cmdAbbruch.DialogResult = System.Windows.Forms.DialogResult.Cancel
      Me.cmdAbbruch.Location = New System.Drawing.Point(208, 88)
      Me.cmdAbbruch.Name = "cmdAbbruch"
      Me.cmdAbbruch.Size = New System.Drawing.Size(75, 23)
      Me.cmdAbbruch.TabIndex = 3
      Me.cmdAbbruch.Text = "Abbruch"
      Me.cmdAbbruch.UseVisualStyleBackColor = True
      '
      'clsInputBox
      '
      Me.AcceptButton = Me.cmdOK
      Me.CancelButton = Me.cmdAbbruch
      Me.ClientSize = New System.Drawing.Size(364, 140)
      Me.Controls.Add(Me.cmdAbbruch)
      Me.Controls.Add(Me.cmdOK)
      Me.Controls.Add(Me.txtValue)
      Me.Controls.Add(Me.lbCaption)
      Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog
      Me.MaximizeBox = False
      Me.MinimizeBox = False
      Me.Name = "clsInputBox"
      Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
      Me.ResumeLayout(False)
      Me.PerformLayout()
 
   End Sub
 
   Private Sub txtValue_Validated(ByVal sender As Object, ByVal e As _
     System.EventArgs) Handles txtValue.Validated
      m_Result = txtValue.Text
   End Sub
End Class
In deiner Form fügst Du dann folgenden Code ein (hier im Beispiel in Button1)
   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
     System.EventArgs) Handles Button1.Click
      Dim RetValue As String = ""
      Dim myInputBox As New clsInputBox
 
      If myInputBox.ShowDialog("Bitte Wert eingeben", "Inputbox", RetValue, _
        "1234") = Windows.Forms.DialogResult.OK Then
         Debug.Print(RetValue)
      End If
   End Sub
Du kannst das Style der InputBox natürlich noch an deine Bedürfnisse anpassen.
Viel Spaß damit...

Gruß

Gru?
---------------------------------------------------
Snoopy sagt - vb@rchiv find ich gut...
Schon gesehen? OSMMapViewer V2 Control

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Rückgabe von InputBox 
Autor: Zero-G.
Datum: 08.04.06 09:13

AUSGEZEICHNET!

Danke - Hab ich auch schon daran gedacht. - hab es zwar etwas anders gelöst, aber eine ausgezeichnete Idee!!!

Danke

lg
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Rückgabe von InputBox 
Autor: vbtricks
Datum: 08.04.06 09:58

Salut,

kleine Frage am Rande: Habe ich das richtig gesehen, dass die InputBox nicht wie die MessageBox in der NET Class Library implementiert wird (außerhalb des VisualBasic-Namespaces)?


Stefan

Web: http://www.vbtricks.de.vu/

VBTricks.de.vu. Meine Webseite zu VB und anderen Programmiersprachen. Verschiedene fortgeschrittene OCXe und komplette Projekte sind im Sourcecode verf?gbar.

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Inputbox für Mono Teil 2 
Autor: vbtest2
Datum: 25.10.06 12:36

Jetzt habe ich 2 Probleme:
1. Mit VB 2002 wird der Intialize Code immer so zurückgeschnitten, wenn ich ein anderes Formular aufgeschrieben habe:

    Private Sub InitializeComponent(ByVal strMeldung As String, ByVal strTitel _
      As String, ByVal strVoreinstellung As String, ByVal XPos As Integer, _
      ByVal YPos As Integer)
        '
        'Nachrichtenkasten
        '
        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
        Me.ClientSize = New System.Drawing.Size(292, 273)
        Me.Name = "Nachrichtenkasten"
 
    End Sub
Die Klasse befindet sich unter einem Module Bereich. Wenn ich die Form wieder aufrufen will, wird die Form als Standartform ohne Steuerelemente angezeigt.

2. Das Programm läuft unter .NET, unter Mono 1.1.18 zeigt es eine leere Form an bricht dann ab. Unter Mono 1.1.18.1 bekomme ich überhaupt nichts zum laufen.

Kann man das Programm so verändern, daß es auch unter Mono läuft ?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel