为了账号安全,请及时绑定邮箱和手机立即绑定

#if Debug 不会使按钮禁用如果不调试

#if Debug 不会使按钮禁用如果不调试

C#
大话西游666 2021-06-28 15:48:54
在我的 wpf 应用程序中,我有一些按钮,如果我在调试中,我希望它启用我的意思是如果我通过 F5 运行我的应用程序。如果我不在调试中,我希望它被禁用,我的意思是 ctrl+F5XAML:<Button  x:Name="ArrowRight" IsEnabled="False"/>后面的代码:public MyClass(){  InitializeComponent();  #if DEBUG    ArrowRight.IsEnabled = true;  #endif}但该按钮始终处于启用状态,如果我运行 F5 甚至 ctrl+F5所以我试图改变这一点:“发布”但如果我构建我的解决方案,它会告诉我缺少一些 Locator.dll如何#if Debug正确使用?
查看完整描述

2 回答

?
莫回无

TA贡献1865条经验 获得超7个赞

F5Ctrl+F5独立于调试/发布模式构建。

在顶部的下拉列表中,您可以选择调试或发布配置。在调试模式下,定义了“DEBUG”符号,所以你的#if作品(里面的代码被编译)。在 Release 模式下,它没有被定义,所以你的代码行没有被编译。它甚至显示为灰色。

F5 和 Ctrl+F5 都可以在选择的任何配置下运行:F5 只是附加调试器,而 Ctrl+F5 则没有。您可能会看到一条警告,提示您正在尝试调试以发布模式构建的应用程序。

另请参阅此问题以检测调试器。


查看完整回答
反对 回复 2021-07-10
?
万千封印

TA贡献1891条经验 获得超3个赞

您正在正确使用调试指令;执行没问题。


更正您在发布版本中遇到的任何“Locator.dll”问题,您可以确认这一点。


做F5或CTRL+F5没有禁止构建 - 如果您在构建后运行时尝试附加调试器并不重要,无论哪种方式,您仍然在 Debug 中构建。


或者,您可以在这里颠倒逻辑,看看它是否适用。


使按钮默认启用。


<Button  x:Name="ArrowRight" IsEnabled="True"/>

使用调试指令时禁用它


public MyClass()

{

  InitializeComponent();

  #if DEBUG

    ArrowRight.IsEnabled = false;

  #endif

}


查看完整回答
反对 回复 2021-07-10
  • 2 回答
  • 0 关注
  • 214 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信