【问题标题】:Class.designer.cs is changing every time I open it每次打开 Class.designer.cs 都会发生变化
【发布时间】:2012-11-29 13:42:16
【问题描述】:

所以我遇到了一个愚蠢的小问题,希望能轻松解决。

所以我有一个自定义的用户控件,它基本上只包含一个选项卡控件和一个选项卡(主要用作设计选项卡的绘图板)。 今天我将我的项目从 VS2008-.net3.5 移到了 VS2010-.net4.0 并且大部分情况下一切看起来都很完美,除了这个自定义用户控件。

每次我在设计器中打开它时,它的名称旁边都会显示一个 *。如果我保存它,在 VS 中关闭页面然后再次打开它,它又回来了!

我比较了一个之前和之后,它做了一些愚蠢的小事情,比如将我的 SplitContainer SplitterDistance 设置为随机长度,并重新排列在 Designer.cs 中定义的控件的顺序。这真的很烦人,因为它每次打开它都会提示保存并使用源代码控制。并且它一直设置的定位是关闭的,并将控件推离屏幕侧面几个像素。

我尝试手动设置分切机距离,这样到处都有很多空间,但每次打开时它都会做同样的事情。

任何帮助将不胜感激。

问候, 赖特

【问题讨论】:

  • 控件在设计时加载时执行布局的副作用。可能与dpi有关。我还没有看到一个关于它的问题,它确切地记录了更改的内容以及首次创建此控件的机器有何不同。
  • 但是您会认为一旦保存就可以了,尤其是在VS的同一实例中。看起来很奇怪,您只需关闭选项卡,然后重新打开控件,设计器就会改变,一切都发生了变化。
  • 有趣。我有一个带有TableLayoutPanel 的表单,每次我在 VS 2010 中打开表单时,它的高度都会改变。我只是把它归结为我不得不忍受的那些恼人的错误之一。也许对您的问题的一个好的回答会有所启发。

标签: c# .net-4.0 user-controls .net-3.5


【解决方案1】:

最近为了解决类似的问题,我追踪到在设计器生成的“InitializeComponent”方法中设置事件处理程序。

我对 SizeChanged 事件进行了事件处理,经过大量实验后我发现这是问题的原因。所以每当表单的 InitializeComponent 中有一行时

someControl.SomeEvent += MyEventHandler

我将它移到构造函数中,就在调用 InitializeComponent 之后。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-08
    • 2020-05-19
    • 1970-01-01
    • 2021-02-11
    • 2018-07-12
    • 2016-05-24
    • 2017-02-15
    相关资源
    最近更新 更多