我在Visual Studio中有一些非常简单的代码,无论出于什么原因,它都无法正常工作。我已经在if语句中将问题缩小到我的布尔条件。这是一个简化版本:
Dim bool As boolean
Protected Sub Button1Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
If bool = true Then
bool = false
ElseIf bool = false Then
bool = true
End If
Label1.Text = bool
End Sub
这是一个按钮点击事件。如果bool最初设置为true,当我点击它时,它会变为false,但是如果我再次点击它,那么" bool = false"声明未执行。
编辑:根据要求,完整的按钮点击处理程序已添加到上面的代码中。如上所述,这是一个asp.net网站。此代码的要点是,在单击按钮时,更改按钮单击时标题元素的样式。但是,这对问题没有影响,因为我暂时删除了该代码以减少任何潜在的问题,并留在上面的代码中。
答案 0 :(得分:9)
看起来你正在做的就是切换布尔标志的值
假设它始终是true
或false
,您只需反转值:
booleanVar = Not booleanVar
答案 1 :(得分:0)
您发布的代码显然应该可以自行运行。您的问题可能是bool
的值未在不同的Web请求之间保存。您需要保存该值。尝试使用HttpContext
的{{1}}属性,如下所示:
Session
有关详细信息,请参阅MSDN Session State Overview和关联的"如何"有关会话信息的文章here。
修改强>: 为了使代码更具可读性并且不会使单击事件处理程序混乱,您可以将以下内容写入方法:
Dim bool as Boolean
If Session.Item("bool") Is Nothing Then
Session("bool") = True
End If
bool = DirectCast(Session("bool"), Boolean)