数据库清理,即使我不想要它

问题描述 投票:0回答:1

作为我以 VB.NET 形式编写的程序的一部分,可以选择删除数据库的内容。此功能并不打算在最终版本中经常使用,而且我不希望用户在不希望的情况下意外单击该按钮并删除内容。

我认为带有是和否按钮的简单消息框不会解决这个问题,因为我听说有几个人在程序中做了他们不想做的事情,即使采取了这样的措施。因此,我希望弹出的消息框有一个“否”按钮和一个复选框,需要勾选该复选框才能显示“是”按钮。但是,不存在具有此功能的默认消息框。经过进一步研究,我决定创建一个定制的。它在大多数情况下都有效,但是,无论我是否勾选复选框并按“是”或是否按“否”,它都会清除数据库。

下面是用于清除数据库的代码:

Private Sub btnClearDatabase_Click(sender As Object, e As EventArgs) Handles btnClearDatabase.Click
    'Opens the Clear Database dialog to confirm if the user wants to clear the database.
    ClearDatabase.ShowDialog()
    If ClearDatabase.DialogResult.OK Then
        'Clears Database. Code not shown
    End If
End Sub

我将“yes”按钮的 DialogResult 属性设置为“确定”,因此我假设 If 语句中的代码仅在按下该按钮时才会运行。但无论我是否按下它,它都会运行。当我打开对话框时它会运行。为什么要这样做?

这可能与 If 语句代码中的警告有关:

“BC42025 通过实例访问共享成员、常量成员、枚举成员或嵌套类型;不会评估限定表达式。”

If ClearDatabase.DialogResult.OK Then
重写为
If DialogResult.Ok Then
可以消除警告,但运行它仍然会产生相同的结果。我真的很困惑为什么要这样做。

编辑:为了澄清,代码在对话框打开时不会运行。它在对话框关闭时运行。

vb.net forms
1个回答
0
投票

我会尝试做两个单独的按钮来清除或只是有一个清除按钮选项。我在没有完整代码的情况下尝试找出错误时遇到了一些麻烦,但我确实相信它告诉您 if 语句(清除或不清除数据库)将被跳过,并且您将清除任何一种方式。

© www.soinside.com 2019 - 2024. All rights reserved.