【问题标题】:Checkbox control not showing up both in the designer and also while debugging复选框控件在设计器中和调试时均未显示
【发布时间】:2020-09-11 07:42:39
【问题描述】:

我正在编写一个 .NET Core 3.1 WinForms 应用程序,但我遇到了复选框问题。它们根本不会出现在我的表单上。

我尝试同时使用 Visual Studio 2019 版本 16.5.2 和 Visual Studio 2019 预览版 16.7.0 预览版 1.0。我激活了选项Use the preview Windows Forms designer for .NET Core apps(在非预览版VS上似乎缺少此选项),但即使设计器中缺少复选框控件。

所以我只是在MyForm.Designer.cs 文件中手动添加了我的复选框

// 
// checkboxRotate
// 
this.checkboxRotate.Visible = true;
this.checkboxRotate.Location = new System.Drawing.Point(400, 40);
this.checkboxRotate.Name = "checkboxRotate";
this.checkboxRotate.Size = new System.Drawing.Size(104, 24);
this.checkboxRotate.TabIndex = 0;
// 
// checkboxFlip
// 
this.checkboxFlip.Visible = true;
this.checkboxFlip.Location = new System.Drawing.Point(370, 40);
this.checkboxFlip.Name = "checkboxFlip";
this.checkboxFlip.Size = new System.Drawing.Size(104, 24);
this.checkboxFlip.TabIndex = 0;

我根据其他控件设置位置,这些复选框应该在垂直轴上的 40 和 370 和 400 对我来说在水平轴上看起来不错。

但是,当我调试它们时,它们仍然没有出现在我的表单上。 我尝试将应用程序转换为 .NET 5(在我的机器上安装了 Preview 4),但没有任何改变。

那么我怎样才能让复选框控件工作呢?我可以通过某种方式在设计器中获得它吗?

网络上的所有屏幕截图都显示了设计器中的复选框控件,甚至是this one from 5 days ago。他们说如果选中Use the preview Windows Forms designer for .NET Core apps 选项,新设计器可在 VS 2019 16.7 Preview 1 中使用,这正是我所做的。 那么为什么我没有这个控制呢?

谢谢

【问题讨论】:

  • 我猜一个基本控件作为一个复选框应该可以工作。您能否创建一个新项目并在那里测试它是否按预期工作?
  • IIRC,.net core 中的 winforms 设计器存在一些已知问题
  • @CodeCaster 与全新项目相同
  • @PavelAnikhouski 很奇怪,他们 5 天前发布了一篇新帖子,说新设计师可用,我们可以清楚地看到屏幕截图上的复选框。遇到这个问题好几个月了,不知道怎么解决,现在真的需要这个控件
  • 你使用 Windows 10 吗?

标签: c# winforms checkbox .net-core


【解决方案1】:

我在 Microsoft 开发人员社区中打开了一张票,但似乎有人在几天前发布了 similar bug report

对我来说修复设计师的解决方案是right click in the Toolbox,然后是Choose items,最后点击右下角的Reset按钮。

如果此解决方法对您不起作用,another way

  1. 关闭 Visual Studio
  2. 删除以下文件:C:\Users{your user}\AppData\Local\Microsoft\VisualStudio\16.0_{***}\privateregistry.bin
  3. 重启 Visual Studio

如果这不起作用,请尝试删除所有这些文件

privateregistry.bin
privateregistry.bin.LOG1
privateregistry.bin.LOG2
toolbox.tbd
toolboxIndex.tbd
toolboxIndex_reset.tbd
toolbox_reset.tbd
ToolboxItemDiscoveryCache.7036b125-fa82-3aba-acb8-bdbc97782a06.dat<br>

注意:注意:删除这些文件并重新启动 VS 后,您可能还需要重置 UI 自定义(主题、窗口位置、代码样式等)

至于为什么在MyForm.Designer.cs 文件中手动添加代码后我的复选框没有显示,这是因为我有一个 GroupBox,我只是忘记向其中添加控件

this.MyGroupBox.Controls.Add(this.checkboxRotate);
this.MyGroupBox.Controls.Add(this.checkboxFlip);

如果您没有任何 GroupBox,则必须将控件直接添加到表单中

this.Controls.Add(this.checkboxRotate);
this.Controls.Add(this.checkboxFlip);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-06
    • 1970-01-01
    • 1970-01-01
    • 2012-09-11
    • 1970-01-01
    • 2012-09-23
    • 1970-01-01
    相关资源
    最近更新 更多