vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 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

Visual-Basic Einsteiger
Click Ereignis 
Autor: Manfred44
Datum: 06.02.18 13:27

Ist es möglich, ohne Click Ereignis
und ohne Form1.Text1 = "" den Inhalt
von Text1 von Form2 aus, zu löschen?
Vielen Dank im Voraus

Form1
Private Sub cmdWeiter_Click()
Form2.Show
End Sub

Private Sub lösch()
Text1 = ""
Text2 = ""
Text3 = ""
End Sub

Form2
Private Sub cmdLöschen_Click()
löschen = 0
End Sub

Module
Public löschen As Integer
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Click Ereignis 
Autor: Blackbox
Datum: 06.02.18 15:50

Hallo,

das geht schon über die WinAPI.

In die Form, die aufgerufen wird baue eine Public Property, die die HWND des Text-Controls aufnimmt.
Beispiel:

Private m_hWnd As Long
 
Public Property Let TexHWND(ByVal nh As Long)
   m_hWnd = nh
End Property
Bevor die Form2 also aufgerufen wird:

Load Form2
Form2.TexHWND = Text1.hwnd
Form2.Show

In der Form2 dann deklarieren:

Private Declare Function SetWindowText Lib "user32.dll" Alias "SetWindowTextA" ( _
     ByVal hwnd As Long, _
     ByVal lpString As String) As Long
Dann irgendwo diese Funktion aufrufen:

SetWindowText m_hWnd, ""

und schon ist die Textbox in der Form1 blank ...

Form1.Text1 = "" ist aber viel kürzer ;)

Anstatt Public Property Let texHWND() in der Form2 kannst Du in der Form2 auch schreiben:

Public texHWND As Long

Beitrag wurde zuletzt am 06.02.18 um 15:56:50 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Click Ereignis 
Autor: Franki
Datum: 07.02.18 03:47

Hallo,
ja das ist möglich, aber warum ohne Ereignis in der Form2?
Irgend einen Grund muss es ja geben warum du das Textfeld leeren möchtest.

Du kannst das auch beim Form_Load der zweiten Form machen, aber wenn du das machst gibt es ja ein Ereignis was diese Form2 aus deiner Form1 aufruft. Also kannst du das Textfeld auch dort leeren bevor du die Form2 aufrufst.

Und was spricht gegen Form1.Text1 = "" ?
Und wozu brauchst du eine Variable als Integer? Löschen ja oder nein wäre eher Boolean. In deinem Beispielcode kommt die gar nicht wirklich zur Anwendung bzw. wird abgefragt.

Beschreibe doch mal etwas genauer was du genau erreichen möchtest. Bzw. wann dein Textfeld gefüllt wird und wann bzw. warum es wieder geleert werden soll.

Gruß
Frank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Click Ereignis 
Autor: Manfred44
Datum: 13.02.18 14:51

Hallo Blackbox

Sollte es so sein?

Form1
Private m_hWmd As Long
Private Sub cmdWeiter_Click()
Load Form2
Form2.texHWND = Text1.hwnd
Form2.Show
End Sub

Private Sub Form_Load()
Text1 = ""
Text2 = ""
Text3 = ""
End Sub

Form2
Private Declare Function SetWindowText Lib "user32.dll Alias "SetWindoTextA" (_
ByVal hwnd As Long;_
ByVal lpString As String) As Long

Private Sub cmdLöschen_Click()
SetWindowText m_hWind, ""
End Sub

Module1
Public texHWND As Long

Gruß Manfred
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Click Ereignis 
Autor: Manfred X
Datum: 13.02.18 17:45

Hallo!

1. Erstelle ein Ereignis (Public Event, ClearText) in Form2.
2. Löse dieses Ereignis aus (Raise...), wenn die Löschtaste
betätigt wird (Click).
3. Deklariere eine Instanz von Form2 in Form1 (New, WithEvents)
4. Verabeite das ClearText-Ereignis in Form1: Lösche den Text in der Box
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Click Ereignis 
Autor: Manfred44
Datum: 28.02.18 18:30

Hallo,

leider habe ich keine Ahnung
wie ich das machen soll.
Schreib mir doch bitte ein Code.

Vielen Dank
Gruß Manfred
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Click Ereignis 
Autor: Manfred X
Datum: 01.03.18 08:52

Hallo!

Erstelle ein untergeordnetes Formular als Form2
ziehe einen Button Command1 drauf, Caption = "Weiter"

Du benötigst für das Event und seine Auslöse im Click
nur folgenden Code in Form2:
Public Event Weiter(ByVal sender As Object, ByVal e As String)
 
 
Private Sub Command1_Click()
    RaiseEvent Weiter(Me, "Nachricht von Form2")
End Sub
Das Hauptformular Form1 benötigt eine Textbox "Text1"
und einen Button Command1. Beim Click dieses Buttons
wird eine Instanz von Form2 geöffnet.
Private WithEvents frm2 As Form2 'Instanz von Form2 deklarieren
 
 
Private Sub Form_Load()
    Set frm2 = New Form2 'Erstellen von frm2
    Text1.Text = "DAS IST DER ZU LÖSCHENDE TEXT"
End Sub
 
 
Private Sub Command1_Click()
     frm2.Show 'Anzeigen von frm2
End Sub
 
 
Private Sub frm2_Weiter(ByVal sender As Object, ByVal e As String)
    'Hier kommt das durch den Click in frm2 ausgelöste Ereignis an.
    Text1.Text = e 'Änderung von Text1 durch Event-Parameter
End Sub
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