【问题标题】:Function doesn't work, but it must work功能不起作用,但它必须起作用
【发布时间】:2011-12-19 01:44:52
【问题描述】:
private void Main_OnLayoutUpdated(object sender, EventArgs e)
{
    label1.Content = Classes.Global.X.ToString();
    Classes.Global.PositionChanged(this);
}

PositionChanged 写入窗口的 X 新 x 位置。它可以工作,但是一旦我删除label1,它就会停止工作。没有错误。

【问题讨论】:

  • 您有没有想过,当您删除 label1 时,该函数的第一行会导致问题。为什么你没有收到错误,我不知道,除非有另一个 label1 漂浮在某个地方。
  • 多一点上下文会有所帮助。
  • 标题绝对、完全、完全无用
  • 你可能会说标题不起作用,但它必须起作用
  • 可以分享PositionChanged方法的代码吗?

标签: c# wpf


【解决方案1】:

我的猜测,Classes.Global.X 做了一些事情(也许会创建一个单例?)并且 PositionChanged 会检查 x 会创建的东西是否为 null,因此什么都不做?

尝试使用 var x = Classes.Global.X 代替标签。

【讨论】:

    【解决方案2】:

    如果您删除 label1,那么尝试将任何内容设置为 label1 可能会通过一个被忽略的异常,可能是对象处理异常或空引用异常会导致它,尝试将所有内容包装在 try catch 中并记录该异常。

    【讨论】:

      【解决方案3】:

      我会在这里刺一下,建议不要删除label1,而只是将label1的可见属性设置为false。

      至少这样你可以维护方法而不破坏应用程序。

      【讨论】:

      • “维护方法”?是两条线。最好在 label1 问题深入之前解决这个谜。
      • 很公平。我只是假设这家伙不想调整方法。无论如何,基思对这个问题的猜测要好得多。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 2021-08-27
      • 2013-01-31
      相关资源
      最近更新 更多