Vb.net 使按钮单击工作一次

Vb.net 使按钮单击工作一次,vb.net,button,checkbox,textbox,click,Vb.net,Button,Checkbox,Textbox,Click,我如何告诉代码不要在每次单击按钮时将单词写入文本框 当两个复选框同时单击时,文本必须按添加顺序写入,但当我再次单击按钮时,文本不应加倍或倍增 Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If CheckBox1.Checked = True Then

我如何告诉代码不要在每次单击按钮时将单词写入文本框

当两个复选框同时单击时,文本必须按添加顺序写入,但当我再次单击按钮时,文本不应加倍或倍增

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If CheckBox1.Checked = True Then
            TextBox1.Text += ("hello ")
        End If
        If CheckBox2.Checked = True Then
            TextBox1.Text += ("please help")
        End If
    End Sub
End Class

对每个if语句(即每个复选框)使用布尔变量。最初将它们设置为false,然后将代码更改为如下所示

If CheckBox1.Checked = True And CheckBox1Bool = False Then
    TextBox1.Text += ("hello ")
    CheckBox1Bool = True
End If
If CheckBox2.Checked = True And CheckBox2Bool = False Then
    TextBox1.Text += ("please help")
    CheckBox2Bool = True
End If
编辑:

Public Class Form1
    Dim Bool1 As Boolean
    Dim Bool2 As Boolean

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If CheckBox1.Checked = True And Not Bool1 Then
            TextBox1.Text += ("hello ")
            Bool1 = True
        End If
        If CheckBox2.Checked = True And Not Bool2 Then
            TextBox1.Text += ("please help")
            Bool2 = True
        End If
    End Sub
End Class

这是可行的,正如您所看到的,我没有更改代码,只是添加了我向您建议的内容

只需重置复选框。选中按钮中的事件单击事件。这样,在您重新选择文本之前,它不会再次发送文本

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    If CheckBox1.Checked = True Then
        CheckBox1.Checked = False
        TextBox1.Text += ("hello ")
    End If
    If CheckBox2.Checked = True Then
        CheckBox2.Checked = False
        TextBox1.Text += ("please help")
    End If
End Sub

非常感谢你对我问题的关心。我检查了你的解决方案后就上床睡觉了。我刚要睡觉,就发布了stg,再次打开电脑,解决了我的愚蠢问题。。这对我来说非常合适:)


End Class

将CheckBox1Bool设置为布尔值
VB中布尔值的默认值为false,因此您甚至不需要首先设置值yes,并将其声明为from member,而不是局部变量。我更喜欢编写
如果CheckBox1.Checked而不是CheckBox1Bool,那么
。感谢您的关注,但这不是我想要的。这样,如果我再次单击按钮,编码为复选框的文本将一次又一次地写入文本框。如果我点击按钮三次,文字将被书写三次。。我只想做一次,即使我点击按钮十次或二十次…那么布尔变量的范围是不正确的。范围必须大于您所拥有的范围
    Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Textbox1.Text= ("")
    If CheckBox1.Checked = True Then
        TextBox1.Text += ("hello ")
    End If
    If CheckBox2.Checked = True Then
        TextBox1.Text += ("please help")
    End If
End Sub