Acceptbutton

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Acceptbutton

    Hi Leute,

    ich erzeuge eine komplette Form mit einem Textfeld und 2 Buttons. (Password, OK, Abbrechen)
    von den Funktionalitäten her funktioniert alles wie es soll, nur jetzt bin ich am verzweifeln...

    Die Form wird aufgerufen, das Textfeld ist im Fokus und ich kann direkt schreiben, wenn ich jetzt Enter drücke passiert nichts (ja der Button OK ist als Acceptbutton gesetzt).

    ich hatte gedacht mit btnOK.focus() = true zu arbeiten aber dann ist das Textfeld nicht mehr aktiv beim starten!

    Hat jemand von euch eine Ahnung?
    @Chris:
    1. die Button müssen die Property DialogResult = {OK, Cancel} haben,
    2. der Dialog muss AcceptButton = Button1 und CancelButton = Button2 haben.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Bei mir geht es.
    Mach Dir mal eine neue Form und füg diesen Designercode ein:
    Form2.Designer.vb

    VB.NET-Quellcode

    1. <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
    2. Partial Class Form2
    3. Inherits System.Windows.Forms.Form
    4. 'Form overrides dispose to clean up the component list.
    5. <System.Diagnostics.DebuggerNonUserCode()> _
    6. Protected Overrides Sub Dispose(ByVal disposing As Boolean)
    7. Try
    8. If disposing AndAlso components IsNot Nothing Then
    9. components.Dispose()
    10. End If
    11. Finally
    12. MyBase.Dispose(disposing)
    13. End Try
    14. End Sub
    15. 'Required by the Windows Form Designer
    16. Private components As System.ComponentModel.IContainer
    17. 'NOTE: The following procedure is required by the Windows Form Designer
    18. 'It can be modified using the Windows Form Designer.
    19. 'Do not modify it using the code editor.
    20. <System.Diagnostics.DebuggerStepThrough()> _
    21. Private Sub InitializeComponent()
    22. Me.btnOK = New System.Windows.Forms.Button()
    23. Me.btnCancel = New System.Windows.Forms.Button()
    24. Me.TextBox1 = New System.Windows.Forms.TextBox()
    25. Me.SuspendLayout()
    26. '
    27. 'btnOK
    28. '
    29. Me.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK
    30. Me.btnOK.Location = New System.Drawing.Point(31, 72)
    31. Me.btnOK.Name = "btnOK"
    32. Me.btnOK.Size = New System.Drawing.Size(75, 23)
    33. Me.btnOK.TabIndex = 1
    34. Me.btnOK.Text = "OK"
    35. Me.btnOK.UseVisualStyleBackColor = True
    36. '
    37. 'btnCancel
    38. '
    39. Me.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel
    40. Me.btnCancel.Location = New System.Drawing.Point(112, 72)
    41. Me.btnCancel.Name = "btnCancel"
    42. Me.btnCancel.Size = New System.Drawing.Size(75, 23)
    43. Me.btnCancel.TabIndex = 2
    44. Me.btnCancel.Text = "Cancel"
    45. Me.btnCancel.UseVisualStyleBackColor = True
    46. '
    47. 'TextBox1
    48. '
    49. Me.TextBox1.Location = New System.Drawing.Point(31, 13)
    50. Me.TextBox1.Name = "TextBox1"
    51. Me.TextBox1.Size = New System.Drawing.Size(100, 20)
    52. Me.TextBox1.TabIndex = 0
    53. '
    54. 'Form2
    55. '
    56. Me.AcceptButton = Me.btnOK
    57. Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
    58. Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
    59. Me.CancelButton = Me.btnCancel
    60. Me.ClientSize = New System.Drawing.Size(284, 262)
    61. Me.Controls.Add(Me.TextBox1)
    62. Me.Controls.Add(Me.btnCancel)
    63. Me.Controls.Add(Me.btnOK)
    64. Me.Name = "Form2"
    65. Me.Text = "Form2"
    66. Me.ResumeLayout(False)
    67. Me.PerformLayout()
    68. End Sub
    69. Friend WithEvents btnOK As System.Windows.Forms.Button
    70. Friend WithEvents btnCancel As System.Windows.Forms.Button
    71. Friend WithEvents TextBox1 As System.Windows.Forms.TextBox
    72. End Class
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    VB.NET-Quellcode

    1. 'Button OK
    2. btnOK.Text = "OK"
    3. btnOK.Location() = New Drawing.Point(13, 62)
    4. PAbfrage.Controls.Add(btnOK)
    5. AddHandler btnOK.Click, AddressOf btnOK_click
    6. Me.btnOK.DialogResult = Windows.Forms.DialogResult.Yes
    7. Me.AcceptButton = Me.btnOK
    8. 'Button Abbrechen
    9. Dim btnAbbrechen As New Button
    10. Me.CancelButton = btnAbbrechen
    11. btnAbbrechen.Text = "Abbrechen"
    12. btnAbbrechen.Location() = New Drawing.Point(103, 62)
    13. PAbfrage.Controls.Add(btnAbbrechen)
    14. AddHandler btnAbbrechen.Click, AddressOf btnAbbrechen_click
    hahaha, da funktioniert es! es reicht nur me.acceptbutton = btnOK zu setzen (und die tabstopps in der richtigen folge zu legen... )

    im code leider nicht...
    So, ich habe den Fehler selber gefunden, wenn man eine neue Form mit dem Namen "PAbfrage" anlegt, sollte man anschließend auch den Acceptbutton von PAbfrage nehmen und nicht von ME!

    Komisch das kein Fehler gekommen ist aber jetzt mit PAbfrage.Acceptbutton =... funktioniert es. Trotzdem vielen Dank für die Tipps!

    :thumbsup: :thumbsup:

    Edit:
    Bitte keine Doppelposts. Bei Ergänzungen die "Bearbeiten"-Funktion verwenden.

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

    Chris schrieb:

    PAbfrage.Acceptbutton =...
    Ist PAbfrage der Name der Form oder die Instanz? Gugst Du hier.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!