2016-04-20 9 views
1

Ich erstelle ein AddIn für Autodesk Inventor, das AddIn ist eine einfache Schaltfläche in der Multifunktionsleiste.vb.net returning string als Ergebnis des Dialogs

Wenn der Benutzer die Taste drückt, wird ein new form als Dialog erstellt.

Private Sub ButtonClick() 
     Dim oWindow As New CopyDesignForm(string1, string2) 
     oWindow.ShowDialog() 
End Sub 

Der Benutzer wird dann einige Operationen tun und ein as string Dateipfad ist das Ergebnis seiner Handlungen. Ich möchte jetzt return diesen Wert, damit mein AddIn die Datei verarbeiten kann.

Aber ich kann kein gutes Beispiel dafür finden. Ich kann nur ein hervorragendes Beispiel dafür finden, wie man das OK- oder Cancel-Ergebnis übergibt. Aber nicht, wie man zu einer Variablen des Dialogs kommt.

Link to ok and cancel result sample

+0

Sie können eine Zeichenfolge-Eigenschaft auf den Dialog hinzufügen und den Wert der Eigenschaft im Dialog einstellen , Überprüfen Sie nach dem Anzeigen des Dialogfelds, ob das Dialogfeldergebnis OK war, und lesen Sie dann die Eigenschaft. –

+1

DialogResult ist ein Typ und Sie sind auf diese definierten Werte beschränkt. Es soll hauptsächlich signalisieren, ob der Benutzer die Sitzung abgebrochen oder eine Entscheidung getroffen hat. Für ** andere Daten ** wie einen Pfad oder was auch immer, exponieren Sie es als eine Eigenschaft und holen Sie es, wenn sie die Sitzung nicht abbrechen/abbrechen – Plutonix

Antwort

1

Sie können eine Zeichenfolge-Eigenschaft auf den Dialog hinzufügen und den Wert der Eigenschaft im Dialog einstellen, dann nach dem Dialog zeigt, ob das Dialoger OK war, dann die Eigenschaft lesen.

-Code für Ihren customm Dialog:

Public Class MyCustomDialog 

    Public Property SomeProperty As String 

    Private Sub OKCommandButton_Click(sender As Object, e As EventArgs) _ 
    Handles OKCommandButton.Click 

     Me.SomeProperty = "Some Value" 
     Me.DialogResult = Windows.Forms.DialogResult.OK 
    End Sub 

    Private Sub CancelCommandButton_Click(sender As Object, e As EventArgs) _ 
    Handles CancelCommandButton.Click 

     Me.SomeProperty = Nothing 
     Me.DialogResult = Windows.Forms.DialogResult.Cancel 
    End Sub 
End Class 

-Code für Ihre Nutzung von benutzerdefinierten Dialog:

Public Class Form1 
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
     Dim f As New MyCustomDialog 
     If (f.ShowDialog() = DialogResult.OK) Then 
      MessageBox.Show(f.SomeProperty) 
     End If 
    End Sub 
End Class