| |
VB.NET - Ein- und UmsteigerDatenaustausch zwischen unterschiedlichen Formen | | | Autor: spatzimatzi | Datum: 02.11.16 13:22 |
| Hallo,
grundsätzlich funktioniert der Datenaustausch zwischen den Formen.
Aber dazu muss jeweils die 2. Form geschlossen werden.
Möchte jedoch über einen Button den Datenaustausch einläuten und die Masken bleiben bestehen
In meiner Form1 habe ich mehrere RichTextBoxen. Diese Boxen sind relativ klein.
Damit man ordentlich den Text formatieren kann, besteht die Möglichkeit, über das Kontext-Menü der RTB eine 2. Form aufzurufen und den Inhalt über Properties zu übergeben. Die 2. Form ähnelt dabei einer sehr einfachen WordPad-Darstellung. Alle wichtige Elemente zum Formatieren des Textes sind enthalten.
Nach Änderungen werden über ein OK-Button der Form2 die RTB-Inhalte (RTB.rtf) über die Properties zurückgegeben und die Form2 geschlossen.
Jetzt möchte ich diesen Austausch durchziehen, ohne die 2. Form zu schließen.
Wie mache ich dies?
Auszug aus meinen Programm:
Im Kontext-Menü:
...
Using frm2 as New Form2
frm2.RTB = RichTextBox_Form1
If frm2.ShowDialog() = DialogResult.OK then
RichTextBox_Form1.Rtf = frm2.RTB.Rtf
End If
End Using In der Form2:
Private _RTB as RichTextBox
...
Public Property RTB() As RichTextBox
Get
Return _RTB
End Get
Set (ByVal Value As RichTextBox)
_RTB = Value
End Set
End Property Wenn ich die Daten übergeben möchte, dann schließe ich die Form2 über den OK-Button
Das funktioniert einwandfrei.
Private sub btnOK_Click(...)
If bolChanges = True Then
Me.DialogResult = Windows.Forms.DialogResult.OK
RTB.Rtf = RichTextBox_Form2.Rtf
End If
Me.Close()
End Sub Meine Fragen:
- Wie kann ich die Informationen zurückgeben, ohne die Form2 zu schließen
- Das WordPad wird in einfacher Form (nur die wichtigsten Textanpassungen)von mir simuliert.
-- Kann man auch direkt Wordpad aufrufen, die Daten aus dem RichTextBox aus Form1 übergeben,
-- Änderungen durchführen und diese zurückgeben? Dann könnte ich mir die Simulation ersparen.
- Gebt mir auch bitte Tipps, wenn die obigen Scripts verbessert werden können bzw. müssen.
Viele Grüße
spatzimatzi | |
Re: Datenaustausch zwischen unterschiedlichen Formen | | | Autor: effeff | Datum: 02.11.16 16:24 |
| Auf Form 1: Eine RichTextBox namens "RichTextBox1", ein Button namens "Button1".
Auf Form 2: Eine RichTextBox namens "RichTextBox2".
Form 1:
Public Class Form1
Private mRTFInhalt1 As String
Public Property RTFInhalt1 As String
Get
Return mRTFInhalt1
End Get
Set(value As String)
mRTFInhalt1 = value
RichTextBox1.Text = mRTFInhalt1
End Set
End Property
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) _
Handles Button1.Click
Dim frmForm2 As New Form2
With frmForm2
.RTFInhalt2 = RichTextBox1.Text
'.frmForm = Me
.RTB = Me.RichTextBox1
.ShowDialog()
End With
End Sub
End Class Form 2:
Public Class Form2
Private mRTFInhalt2 As String
Private mRTB As RichTextBox
Public Property RTFInhalt2 As String
Get
Return mRTFInhalt2
End Get
Set(value As String)
mRTFInhalt2 = value
End Set
End Property
Public Property RTB As RichTextBox
Get
Return mRTB
End Get
Set(value As RichTextBox)
mRTB = value
End Set
End Property
Private Sub RichTextBox2_TextChanged(sender As System.Object, e As _
System.EventArgs) Handles RichTextBox2.TextChanged
RTB.Text = RichTextBox2.Text
End Sub
Private Sub Form2_Load(sender As System.Object, e As System.EventArgs) _
Handles MyBase.Load
RichTextBox2.Text = mRTFInhalt2
End Sub
End Class EALA FREYA FRESENA | |
Re: Datenaustausch zwischen unterschiedlichen Formen | | | Autor: spatzimatzi | Datum: 02.11.16 16:56 |
| Hallo effeff,
vielen Dank für das Script.
Habe nicht verstanden, was die Property in Form 1 macht.
Ansonsten ist mein Script mit Deinem Script vergleichbar.
Bei Dir werden die Änderungen über TextChanged unmittelbar übertragen.
Die Zeile RTB.Text = RichTextBox2.Text löst bei mir jeweils ein Schließen der Form 2 aus.
Daher kam ich auch nicht weiter.
Vielleicht habe ich auch etwas nicht verstanden. Bei meinem Kenntnisstand ist das ohne weiteres möglich.
Vielen Dank
spatzimatzi | |
Re: Datenaustausch zwischen unterschiedlichen Formen | | | Autor: spatzimatzi | Datum: 02.11.16 17:24 |
| Hallo effeff,
danke für die Info. Klasse! Problem hätte ich nicht gefunden!
Vielen Dank
spatzimatzi | |
| 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 |
|
|
Neu! sevEingabe 3.0
Einfach stark!
Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. Weitere InfosTipp des Monats Access-Tools Vol.1
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
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
|
|