【问题标题】:Control 'seems' to be locked控制“似乎”被锁定
【发布时间】:2012-01-13 14:35:27
【问题描述】:

我正在尝试将属性更改为控件,但它看起来好像已“锁定”,但实际上,这并不是因为当我右键单击该控件时,它显示该控件已解锁。

我使用的是 Visual Studio 2005,我从未使用过在提供的图片中似乎被锁定的控件。

非常感谢您提供简单的解释以及如何解决此问题,以便我可以继续修改它。

【问题讨论】:

  • 你使用的是什么源代码控制系统?
  • 不太确定,但可能该控件已在其他文件中定义。换句话说,您会看到拥有控件的主机。
  • 它可能附加到一个进程。您是否按 F5 运行项目,然后切换到 VS 并尝试编辑控件。如果是这种情况,您需要停止调试器。
  • 那些控件是您放置在表单上的 UserControl 吗?如果是这样,那么您必须打开 UserControl 并更改您希望能够修改的每个控件的 modifier 属性。或者你可以在 UserControl 本身上修改它们,如果这不会破坏其他东西的话。

标签: c# .net winforms controls


【解决方案1】:

右键单击表单并取消选中“锁定控件”选项

这应该会有所帮助。

【讨论】:

  • 当一个控件被锁定时,你可以在它的左上角看到一个小锁。锁定容器也会锁定其中的所有控件。
  • 抱歉,正如我之前提到的,这些控件没有被锁定。
【解决方案2】:

当您尝试设计继承的表单并且该表单上的控件是私有时,就会发生这种情况。设计师观察可访问性修饰符。返回基本表单并将控件的 Modifiers 属性从 Private 更改为 Protected。

【讨论】:

  • 您好,感谢您的回答。我仍然有点困惑。你所说的基本形式是什么意思?在上图中,bnvNavigator 是一个用户控件,它继承自 Microsoft 的 BindingNavigator 控件。我假设回到基本形式你不是要改变微软的代码?谢谢
  • 我在回答中假设您继承自 Form 类以外的表单。项目 + 添加新项目,Windows 窗体 + 继承的窗体。如果不是这种情况,那么这个答案与您的问题不符。要使嵌入在 UserControl 中的控件可编辑,您需要一个自定义设计器。请参阅stackoverflow.com/questions/2785376/… 虽然我不理解屏幕截图,但它看起来不像 UserControl。
  • @HansPassant 这似乎对TableLayoutPanelFlowLayoutPanel 没有任何作用,这似乎很特别。 (我正在设计一个用户控件继承[不是嵌入,如您上一条评论中那样]另一个包含TableLayoutPanel的用户控件,无论其可访问性修饰符是什么PrivateProtectedPublic,它都保持锁定状态。 )
  • 哦,好吧,confirmed by MSDNTableLayoutPanel 控件不支持 Windows 窗体设计器中的视觉继承。派生类中的 TableLayoutPanel 控件在设计时显示为“锁定”。
  • 如果您在基本控件中使用 TableLayoutPanel,并且想要更改继承类中的某些布局属性,请将 TableLayoutPanel 插入 Panel我>。当然 Panel 应该有 protected 修饰符。
【解决方案3】:

转到表单解决方案资源管理器的基本代码--> formXX --> Dispose(Boolean) 并将继承行更改为 Inherits System.Windows.Forms.Form

【讨论】:

    【解决方案4】:

    如果您的项目中有名为“Form.cs”的表单 A,则其他表单(B、C、D 等)的类将是“A”的继承类“Form.cs”。 .它应该继承System.Windows.Forms.Form。只需尝试将您的 A 表单类名称从“Form.cs”更改为“Form1.cs”。

    【讨论】:

      【解决方案5】:

      我遇到了完全相同的问题,但只是发生在 DevExpress 控件上。

      经过几个小时的修改修改器和我自己的脚,我在 Visual Studio => DevExpress => WinForms Controls vX.XX => 更改设计时设置 => 为 Developer Express 启用视觉继承找到了这个选项Visual Studio 中使用的控件

      【讨论】:

        【解决方案6】:

        当您添加新的继承表单并希望解锁所有控件时,转到您继承自的表单,选择 Designer.cs 文件并更改您想要更改为受保护的控件。完成后,构建您的解决方案,然后创建继承的表单。控件应该已解锁。

        【讨论】:

          【解决方案7】:

          刚才我在从备份目录恢复 .CS 后遇到了类似的问题。无法编辑的原因是(备份)文件是在只读模式下创建的。 删除资源管理器中的“只读”属性并刷新 C# 项目后,问题就解决了。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2023-03-26
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多