Bei wiederholtem Button_click Neues Ereignis stattfinden lassen

  • VB.NET

Es gibt 49 Antworten in diesem Thema. Der letzte Beitrag () ist von JamalR3.

    Bei wiederholtem Button_click Neues Ereignis stattfinden lassen

    Hallo an alle!

    Ich hab einen Button, und wenn ich drauf klicke erscheinen dann z.b. 2 textboxen hinzu. Und jetzt möchte ich, dass wenn ich nochmal drauf klicke, wieder 2 button unten drunter enstehen.

    ich hab mir das mit den erstellten textboxen so gedacht: ich setze sie auf visible = False. Bei button klick die ersten 2 textboxen.visible = true.

    Jetzt muss halt bei wiederholten Drücken neue textboxen erscheinen.


    Wie tuh ich das?
    Hallo JamalR3,

    warum erstellst du deine Textboxen nicht einfach erst zur Laufzeit und merkst dir deine letzte Positionierung.
    Darauf hin kannst du bei erneutem Button Click Event, deine Positioniert + X Rechnen und könntest somit die Textboxen bis ins unendliche erstellen.
    Jedem Container (Form, Panel, GroupBox etc) kannst du während der Laufzeit weitere Steuerelemente hinzufügen.
    Darüber hinaus, kannst du diesem neuen Steuerelement gleich Eigenschaften mitgeben, damit er so arbeitet wie du wünscht.

    VB.NET-Quellcode

    1. Public Class Form1
    2. 'Speicher für die Letzte Verticale Position
    3. Private intLetztePositionY As Integer = 0
    4. 'Speicher für die Anzahl der Button aufrufe
    5. Private intAnzahlButtonClicks As Integer = 0
    6. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    7. 'Aufruf +1
    8. intAnzahlButtonClicks += 1
    9. 'Position +25 Pixel
    10. intLetztePositionY += 25
    11. 'Erstellt neues TextBox Steuerelement
    12. Dim textBoxLinks As TextBox = New TextBox()
    13. With textBoxLinks
    14. 'Vergibt einen Namen für das Element
    15. .Name = String.Format("TextboxLinks{0}", intAnzahlButtonClicks)
    16. 'Definiert die Größe
    17. .Size = New Size(120, 20)
    18. 'Definiert die Position
    19. .Location = New Point(25, intLetztePositionY)
    20. End With
    21. 'Fügt es der Form hinzu
    22. Me.Controls.Add(textBoxLinks)
    23. 'Erstellt neues TextBox Steuerelement
    24. Dim textBoxRechts As TextBox = New TextBox()
    25. With textBoxRechts
    26. 'Vergibt einen Namen für das Element
    27. .Name = String.Format("TextboxRechts{0}", intAnzahlButtonClicks)
    28. 'Definiert die Größe
    29. .Size = New Size(120, 20)
    30. 'Definiert die Position, 5 Pixel Rechts neben der Linken Textbox
    31. .Location = New Point(145, intLetztePositionY)
    32. End With
    33. Me.Controls.Add(textBoxRechts)
    34. End Sub
    35. End Class


    Hoffe das Hilft dir etwas weiter...
    ja, das geht, machs doch einfach do :D

    VB.NET-Quellcode

    1. Dim klickanzahl As String = "0"
    2. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    3. If klickanzahl = "0" Then
    4. TextBox1.Hide() 'beim ersten klick
    5. klickanzahl = "1"
    6. Else
    7. TextBox2.Show() ' beim 2 klick
    8. End If
    9. End Sub

    währe die einfachste lösing :D
    Du nimmst klickanzahl einfach jedesmal + 1 also:

    klickanzahl += 1

    und gehst dann immer in dei If Zweige z.B.:

    VB.NET-Quellcode

    1. Dim klickanzahl As Integer = 0
    2. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    3. If klickanzahl = 0 Then
    4. TextBox1.Hide()
    5. klickanzahl += 1
    6. ElseIf klickanzahl = 1 Then
    7. TextBox2.Show()
    8. klickanzahl += 1
    9. ElseIf klickanzahl = 2 Then
    10. ....'usw.
    11. End If
    12. End Sub


    So kannst du immer sehen wie oft schon geklickt wurde und dann ein anderes ereignis starten

    Gruß Einsteiger
    wow, danke hast mir super weitergeholen!!

    Jetzt ergibt sich meine nächste frage.

    Ich hab checkboxen, die vor den textboxen sind... wenn ich die checkbox auswähle und auf einen button klicke. soll diese textbox wieder verschwinden.

    und sobald wieder textboxen gebraucht werden, bei klick soll die textbox dahin kommen, wo die andere verschwunden ist..

    klingt vllt ein bisschen umständlich un kompliziert... ist dies aber möglich??
    Dann mach sowas:

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. If CheckBox1.Checked Then 'Ist die CheckBox gecheckt?
    3. TextBox1.Visible = False 'Dann wird die dazugehörige TextBox unsichtbar
    4. EndIf
    5. If CheckBox2.Checked Then 'Es ist wichtig, dass es einzelne IfBlöcke sind(also nicht mit ElseIf, sonst führt er es nur efür eine aus)
    6. TextBox2.Visible = False
    7. EndIf
    8. If CheckBox3.CheckedThen
    9. ...
    10. End Sub



    Um die Lücke wieder zu füllen schaust du einfach wo TextBoxen unsichtbar (oder gelöscht) sind und fügst da die neue ein (oder machts die alte wieder sichtbar

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. If TextBox1.Visible = False Then 'Wenn da eine Lücke ist
    3. TextBox1.Visible = True 'dann wird diese aufgefüllt
    4. ElseIf TextBox2.Visible = False Then 'So fügt er nur an der ersten Lücke wieder eine TextBox eine, wenn du es in einzelnen If Blöcken machst dann fügt er in jede Lücke wieder eine ein.
    5. TextBox2.Visible = true
    6. ...
    7. EndIf
    8. End Sub


    Gruß Einsteiger

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Einsteiger“ ()

    alles umständlich
    also

    hier mal ein beispiel mit der transparenz

    If me.opacity = 1 Then
    Me.Opacity = 0.75
    Else
    Me.Opacity = 1
    End if

    If Me.opacity = 0.75 then
    me.opacity = 0.5
    else
    me.opayity = 1
    end if

    hoffe man kann mir folgen

    LG Lukas
    @ lukasoftware:

    danke, aber ich komm grad nich vorran

    Ich kann die textboxen sichtbar machen und alles:

    aber ich möchte einfach das wenn weitere eingaben nötig sind, bei button klick 2 neue textboxen erscheinen...
    wenn ich jetzt zum beispiel
    5 untereinander hab, und die eingabe aus der 3ten lösche, dass die zwei untereinander hochspringen. so dass übersichtlicher bleibt und nich so lückenvoll aussieht.

    ich verzweipfle schon fast dran -.-
    Quellcode

    VB.NET-Quellcode

    1. Public Class Form4
    2. Private Sub Form4_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    3. Textbox3.visible = False
    4. TextBox4.Visible = False
    5. TextBox5.Visible = False
    6. TextBox6.Visible = False
    7. TextBox7.Visible = False
    8. TextBox8.Visible = False
    9. TextBox9.Visible = False
    10. TextBox10.Visible = False
    11. TextBox11.Visible = False
    12. TextBox12.Visible = False
    13. TextBox13.Visible = False
    14. TextBox14.Visible = False
    15. TextBox15.Visible = False
    16. TextBox16.Visible = False
    17. TextBox17.Visible = False
    18. TextBox18.Visible = False
    19. TextBox19.Visible = False
    20. TextBox20.Visible = False
    21. TextBox21.Visible = False
    22. TextBox22.Visible = False
    23. TextBox23.Visible = False
    24. TextBox24.Visible = False
    25. TextBox25.Visible = False
    26. TextBox26.Visible = False
    27. TextBox27.Visible = False
    28. TextBox28.Visible = False
    29. TextBox29.Visible = False
    30. TextBox30.Visible = False
    31. TextBox31.Visible = False
    32. TextBox32.Visible = False
    33. TextBox33.Visible = False
    34. TextBox34.Visible = False
    35. TextBox35.Visible = False
    36. TextBox36.Visible = False
    37. TextBox37.Visible = False
    38. TextBox38.Visible = False
    39. TextBox39.Visible = False
    40. TextBox40.Visible = False
    41. CheckBox2.Visible = False
    42. CheckBox3.Visible = False
    43. CheckBox4.Visible = False
    44. CheckBox5.Visible = False
    45. CheckBox6.Visible = False
    46. CheckBox7.Visible = False
    47. CheckBox8.Visible = False
    48. CheckBox9.Visible = False
    49. CheckBox10.Visible = False
    50. CheckBox11.Visible = False
    51. CheckBox12.Visible = False
    52. CheckBox13.Visible = False
    53. CheckBox14.Visible = False
    54. CheckBox15.Visible = False
    55. CheckBox16.Visible = False
    56. CheckBox17.Visible = False
    57. CheckBox18.Visible = False
    58. CheckBox19.Visible = False
    59. CheckBox20.Visible = False
    60. End Sub
    61. Dim Klickanzahl As Integer = 0
    62. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    63. If Klickanzahl = 0 Then
    64. TextBox3.Show()
    65. TextBox4.Show()
    66. CheckBox2.Show()
    67. Klickanzahl += 1
    68. ElseIf Klickanzahl = 1 Then
    69. TextBox5.Show()
    70. TextBox6.Show()
    71. CheckBox3.Show()
    72. Klickanzahl += 1
    73. ElseIf Klickanzahl = 2 Then
    74. TextBox7.Show()
    75. TextBox8.Show()
    76. CheckBox4.Show()
    77. Klickanzahl += 1
    78. ElseIf Klickanzahl = 3 Then
    79. TextBox9.Show()
    80. TextBox10.Show()
    81. CheckBox5.Show()
    82. Klickanzahl += 1
    83. ElseIf Klickanzahl = 4 Then
    84. TextBox11.Show()
    85. TextBox12.Show()
    86. CheckBox6.Show()
    87. Klickanzahl += 1
    88. ElseIf Klickanzahl = 5 Then
    89. TextBox13.Show()
    90. TextBox14.Show()
    91. CheckBox7.Show()
    92. Klickanzahl += 1
    93. ElseIf Klickanzahl = 6 Then
    94. TextBox15.Show()
    95. TextBox16.Show()
    96. CheckBox8.Show()
    97. Klickanzahl += 1
    98. ElseIf Klickanzahl = 7 Then
    99. TextBox17.Show()
    100. TextBox18.Show()
    101. CheckBox9.Show()
    102. Klickanzahl += 1
    103. ElseIf Klickanzahl = 8 Then
    104. TextBox19.Show()
    105. TextBox20.Show()
    106. CheckBox10.Show()
    107. Klickanzahl += 1
    108. ElseIf Klickanzahl = 9 Then
    109. TextBox21.Show()
    110. TextBox22.Show()
    111. CheckBox11.Show()
    112. Klickanzahl += 1
    113. ElseIf Klickanzahl = 10 Then
    114. TextBox23.Show()
    115. TextBox24.Show()
    116. CheckBox12.Show()
    117. Klickanzahl += 1
    118. ElseIf Klickanzahl = 11 Then
    119. TextBox25.Show()
    120. TextBox26.Show()
    121. CheckBox13.Show()
    122. Klickanzahl += 1
    123. ElseIf Klickanzahl = 12 Then
    124. TextBox27.Show()
    125. TextBox28.Show()
    126. CheckBox14.Show()
    127. Klickanzahl += 1
    128. ElseIf Klickanzahl = 13 Then
    129. TextBox29.Show()
    130. TextBox30.Show()
    131. CheckBox15.Show()
    132. Klickanzahl += 1
    133. ElseIf Klickanzahl = 14 Then
    134. TextBox31.Show()
    135. TextBox32.Show()
    136. CheckBox16.Show()
    137. Klickanzahl += 1
    138. ElseIf Klickanzahl = 15 Then
    139. TextBox33.Show()
    140. TextBox34.Show()
    141. CheckBox17.Show()
    142. Klickanzahl += 1
    143. ElseIf Klickanzahl = 16 Then
    144. TextBox35.Show()
    145. TextBox36.Show()
    146. CheckBox18.Show()
    147. Klickanzahl += 1
    148. ElseIf Klickanzahl = 17 Then
    149. TextBox37.Show()
    150. TextBox38.Show()
    151. CheckBox19.Show()
    152. Klickanzahl += 1
    153. ElseIf Klickanzahl = 18 Then
    154. TextBox39.Show()
    155. TextBox40.Show()
    156. CheckBox20.Show()
    157. Klickanzahl += 1
    158. End If
    159. End Sub
    160. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    161. If CheckBox1.Checked Then
    162. TextBox1.Visible = False
    163. TextBox2.Visible = False
    164. CheckBox1.Visible = False
    165. End If
    166. If CheckBox2.Checked Then
    167. TextBox3.Visible = False
    168. TextBox4.Visible = False
    169. CheckBox2.Visible = False
    170. End If
    171. If CheckBox3.Checked Then
    172. TextBox5.Visible = False
    173. TextBox6.Visible = False
    174. CheckBox3.Visible = False
    175. End If
    176. If CheckBox4.Checked Then
    177. TextBox7.Visible = False
    178. TextBox8.Visible = False
    179. CheckBox4.Visible = False
    180. End If
    181. If CheckBox5.Checked Then
    182. TextBox9.Visible = False
    183. TextBox10.Visible = False
    184. CheckBox5.Visible = False
    185. End If
    186. If CheckBox6.Checked Then
    187. TextBox11.Visible = False
    188. TextBox12.Visible = False
    189. CheckBox6.Visible = False
    190. End If
    191. If CheckBox7.Checked Then
    192. TextBox13.Visible = False
    193. TextBox14.Visible = False
    194. CheckBox7.Visible = False
    195. End If
    196. If CheckBox8.Checked Then
    197. TextBox15.Visible = False
    198. TextBox16.Visible = False
    199. CheckBox8.Visible = False
    200. End If
    201. If CheckBox9.Checked Then
    202. TextBox17.Visible = False
    203. TextBox18.Visible = False
    204. CheckBox9.Visible = False
    205. End If
    206. If CheckBox10.Checked Then
    207. TextBox19.Visible = False
    208. TextBox20.Visible = False
    209. CheckBox10.Visible = False
    210. End If
    211. If CheckBox11.Checked Then
    212. TextBox21.Visible = False
    213. TextBox22.Visible = False
    214. CheckBox11.Visible = False
    215. End If
    216. If CheckBox12.Checked Then
    217. TextBox23.Visible = False
    218. TextBox24.Visible = False
    219. CheckBox12.Visible = False
    220. End If
    221. If CheckBox13.Checked Then
    222. TextBox25.Visible = False
    223. TextBox26.Visible = False
    224. CheckBox13.Visible = False
    225. End If
    226. If CheckBox14.Checked Then
    227. TextBox27.Visible = False
    228. TextBox28.Visible = False
    229. CheckBox14.Visible = False
    230. End If
    231. If CheckBox15.Checked Then
    232. TextBox29.Visible = False
    233. TextBox30.Visible = False
    234. CheckBox15.Visible = False
    235. End If
    236. If CheckBox16.Checked Then
    237. TextBox31.Visible = False
    238. TextBox32.Visible = False
    239. CheckBox16.Visible = False
    240. End If
    241. If CheckBox17.Checked Then
    242. TextBox33.Visible = False
    243. TextBox34.Visible = False
    244. CheckBox17.Visible = False
    245. End If
    246. If CheckBox18.Checked Then
    247. TextBox35.Visible = False
    248. TextBox36.Visible = False
    249. CheckBox18.Visible = False
    250. End If
    251. If CheckBox19.Checked Then
    252. TextBox37.Visible = False
    253. TextBox38.Visible = False
    254. CheckBox19.Visible = False
    255. End If
    256. If CheckBox20.Checked Then
    257. TextBox39.Visible = False
    258. TextBox40.Visible = False
    259. CheckBox20.Visible = False
    260. End If
    261. End Sub
    262. End Class



    Edit by der_Kurt:
    Bei längeren Codes verwende bitte den Expander-Tag. Es ist grausam, sich an 340 Zeilen Code vorbeiscrollen zu müssen, wenn man weiterlesen will.
    * Expander-Tag eingefügt *

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „der_Kurt“ ()

    ja funktionieren tut es ja... aber guck mal

    ich hab die klickanzahl bestimmt, z.b. beim 6ten klick, halt die 6 textbox erstellen... und wenn man nich mehr mehr braucht, den wert von textbox3 löscht, durch die checkbox, dass bei einem weiteren button klick, dort die textbox ersetzt wird un hinkommt, anstatt bei textbox7
    verstehst du mein kompliziertes problem??
    Du nimmst einfach das TextBox VisibleChanged - Event und sagst allen Textboxen unter der die Visible = False wird, dass sie hochrückensollen mit textBox4.Top += 25 (oder wie weit du sie halt hochrücken lassen willst. Das musst du halt Für jede Textbox machen. Das ist aufwändig.
    danke! ...

    kannst mir ein beispielcode geben für eine textbox?

    aber mein programmcode bisher scheint rihctig zu sein?


    ihc muss jetzt nur dasTextbox3.top += 25

    bei jeden einfügen
    oder soll noch was kommen?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „JamalR3“ ()