【问题标题】:Can't select controls on my form无法在我的表单上选择控件
【发布时间】:2013-09-12 15:10:52
【问题描述】:

最近开始发生这种情况(不幸的是,不太清楚是什么导致了这种变化),但我无法再选择表单上的控件。我对此的阅读发现了一些可能的解释,包括:

  1. 您正在调试模式下运行程序
  2. 您的表单派生自另一个类,其中所有内容都是私有的
  3. 您的控件已“锁定”。

对于 (1),不,它肯定没有运行,对于 (2),我的表单是从 DevComponents.DotNetBar.RibbonForm 派生的。对于(3),不,它们没有“锁定”(我尝试锁定然后解锁,以防某些状态卡在设计器中,但没有骰子)。控件在我的表单上,而不是基类表单上,并且实例不是私有的(我故意将它们公开只是为了测试这个)并且它们之前工作正常。

那么,我该怎么办?我可以从“属性”窗口下拉列表中选择一个控件,如 ComboBox,更改其属性等。但是当我选择它时,设计师没有选择任何东西。我可以选择表单本身(通过它的边框)并在设计器中调整它的大小。我可以添加一个新控件,如标签,并在设计器中与它很好地交互,所以这就是我现有控件发生的事情。

我确定它要么是非常愚蠢,要么是 Visual Studio 2012 即将结束。

有人吗?

编辑:将解决方案压缩并带回家。清洁和重建,它在设计器中运行良好。我猜我在工作中的安装有问题,不知何故。

【问题讨论】:

  • 如果你新建一个winforms应用程序并添加一个控件,可以选择这个控件吗?
  • 是的。正如我所指出的,我可以向此表单添加新控件并很好地操作它们。只是现有的控件似乎以某种方式“锁定”了,即使表单没有,而且上面也没有小挂锁。
  • 嗯.. Ctrl + A 时是否为所有这些设置了任何公共属性?
  • 很好,但是当我这样做时,格式菜单中的锁定项被禁用。
  • 有多种方法可以破坏设计器,方法是让控件中的事件也在设计时运行。您应该使用 DesignMode 属性来避免此类事故。很难猜出您可以做些什么来破坏选择逻辑,请使用源代码管理来查看您所做的更改。

标签: c# winforms visual-studio-2012


【解决方案1】:

当安装了新版本的 DevComponents.DotNetBar 并且旧版本仍从单独的库文件夹中引用时,可能会出现此问题。

应用程序和所有引用 DotNetBar 的 dll 应重新引用到最新版本。

【讨论】:

    【解决方案2】:

    为了让这对我有用,我最终不得不为不同的控件添加对设计器的引用:SuperGrid.DesignDotNetBar.Design

    【讨论】:

      【解决方案3】:

      我在 DotnetBar 上遇到了同样的问题,通过在项目中添加参考 DevComponents.DotNetBar.Design.DLL 解决了它

      【讨论】:

      • 关于该 dll 在哪里的任何想法,我可以在 gac 中看到它,但在最新版本的 DotNetBar 中,“DevComponents.DotNetBar.Design.DLL”在哪里并不明显。
      • 难道您不需要将设计 DLL 与您的可执行文件一起提供吗?这将是一个非常糟糕的主意,并且可能在 DotNetBar 许可下是不允许的
      【解决方案4】:

      一般问题是使用不再存在的引用。对我来说,我有几个版本的 Infragistics 控件并卸载了除最新版本之外的所有版本。至少我的一个参考指向了一个不存在的 DLL。因此,看似删除和重新添加实质上是指向正确(或存在)DLL 的引用。

      此外,此问题的症状之一是控件的标签出现在对话框/表单下方的窗口中。

      【讨论】:

        【解决方案5】:

        我遇到了这个主题的另一个变体。我已将 Infragistics 控件放入 lib 文件夹中。该项目仍将编译/运行,但要在编辑器中选择控件,该项目必须引用原始安装的控件。详情请见Cannot select Infragistics controls in WinForms designer

        【讨论】:

          【解决方案6】:

          重置工具箱(在工具箱内右键单击)然后“重新安装”新工具栏对我有用。似乎是 Visual Studio 中的一个错误。

          【讨论】:

            【解决方案7】:

            我有同样的问题,你可以ctrl+a 选择所有,然后将controls 移动到某个地方,不管在哪里。现在你可以再次单独select他们了。

            我通过将tab 向下拖动来解决这个问题,这样我就可以同时看到两个codes

            【讨论】:

              【解决方案8】:

              我知道这是一篇旧帖子,但如果它对其他人有帮助,我的版本是无法选择标签页上的控件。将标签页发送到后面没有帮助。但是我发现我可以通过在属性框中选择控件然后将鼠标放在控件大小箭头上并右键单击来突出显示控件,然后我可以将控件向前移动。

              【讨论】:

                【解决方案9】:

                只需关闭当前的 Soln 并再次打开即可解决此问题, 这可能是由于其他表单中的一些隐藏选择造成的!

                【讨论】:

                  【解决方案10】:

                  对我来说,问题只在于“发送到后面”和“放在前面”

                  我做了 Control+A 然后取消选择所有其他控件,然后右键单击我以前看不到的控件,然后单击“置于前面”。

                  对我来说,问题的发生是因为我从 Group Box 中删除了这些控件。

                  【讨论】:

                    【解决方案11】:

                    Visual Studio 2019,我关闭表单以及当前打开的与该表单关联的所有文件 (.cs .rex),然后重新打开它们。这解决了我的“无法选择控件”问题。我发现这个问题偶尔会发生,而且有点麻烦,但这个简单的修复方法似乎总是对我有用。

                    【讨论】:

                      【解决方案12】:

                      这个问题的主要原因是项目中使用了旧版本的组件,并且机器上安装了新版本的组件。 10 次中有 9 次仍然指向 GAC 中的组件。删除对组件的引用并从新安装的组件位置重新添加它,一切都应该可以正常工作。

                      【讨论】:

                        【解决方案13】:

                        嗯,我有点解决了这个问题,虽然我不知道真正的原因是什么。在我的程序中,我引用了 devcomponents.dotnetbar dll。我删除了引用,然后重新添加了它,重建了程序,现在一切都在设计器中正常工作。

                        【讨论】:

                          【解决方案14】:

                          我有同样的情况,但关闭并重新打开我的项目解决了问题

                          【讨论】:

                            【解决方案15】:

                            只需右键单击表单并取消选中Lock Controls

                            【讨论】:

                            • 是的,也去过那里。应该把它放在我的列表中。
                            • @Sayse 是的,就像你Print Screen它的桌面一样,隐藏图标,并将打印屏幕设置为背景。
                            • @Robinson 我可以用Lock Controls 重现您的所有问题,很抱歉这对您没有帮助。
                            • 是的 Nemanja,但设计师并没有“认为”他们被锁定在它呈现给我的 UI 中。
                            • 只锁定/解锁主窗体。正如你所料,它工作得很好。但是,对表单上的控件没有影响。
                            【解决方案16】:

                            将项目移动到另一台 PC 后,我遇到了同样的问题。我没有在新机器上安装DotNetBar,只是复制了DevComponents.DotNetBar.dll。我还通过将 DevComponents.DotNetBar.Design.dll(包含在旧机器的 DotNetBar 安装目录中)复制到新机器并在项目中引用它来解决它。

                            【讨论】:

                            • 非常感谢我的朋友 .. 你的回答很棒,因为几个小时后,我终于可以解决问题了...
                            【解决方案17】:

                            我遇到了这个问题,它是在我错误地使用“使用”和“命名空间”以盲目尝试摆脱错误后引起的。我一个一个地保存了每个 .cs 文件,然后关闭 VS 并重新打开它。很快,小锁消失了。

                            【讨论】:

                              猜你喜欢
                              • 2021-09-15
                              • 2016-04-29
                              • 1970-01-01
                              • 1970-01-01
                              • 2019-10-13
                              • 2015-08-09
                              • 1970-01-01
                              • 1970-01-01
                              • 2018-07-15
                              相关资源
                              最近更新 更多