Bala_Manaoano 2024-06-14 14:42 采纳率: 50%
浏览 3

WinForm窗体问题

打开一个C#项目,自定义的控件看不到视图,VS提示若要在类中添加组件,请从工具箱中拖出它们,然后使用“属性”窗口来设置它们的属性。

img

求解释!

  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-06-14 14:42
    关注

    引自免费微信小程序:皆我百晓生

    遇到在Visual Studio中自定义控件无法在设计视图中显示的问题时,通常有几种解决办法。这可能是因为缺少必需的设计器属性、控件没有正确注册到工具箱、或者控件的设计时支持代码存在问题。

    解决方案

    1. 确保控件继承自正确的基类

    自定义控件应继承自System.Windows.Forms.Control或其派生类(如ComboBox)。例如:

    public class CustomComboBox : ComboBox
    {
        // 自定义控件的实现
    }
    

    2. 添加Designer属性

    在自定义控件类中,确保有Designer属性。这告诉Visual Studio此控件可以被设计时支持。

    [Designer("System.Windows.Forms.Design.ParentControlDesigner, System.Design")]
    public class CustomComboBox : ComboBox
    {
        // 控件的其他代码
    }
    

    3. 注册控件到工具箱

    确保在项目启动时,自定义控件被注册到工具箱。这可以通过在程序入口处调用ToolboxItem构造函数完成,或者通过在.Designer.cs文件中添加注册代码。

    Program.csForm1.cs等启动文件中添加:

    static class Program
    {
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            ToolboxItem tbi = new ToolboxItem(typeof(CustomComboBox));
            Toolbox.Add(tbi);
            Application.Run(new Form1());
        }
    }
    

    或者在.Designer.cs文件中添加:

    public partial class Form1
    {
        public Form1()
        {
            InitializeComponent();
    
            // 添加到工具箱
            ToolboxItem tbi = new ToolboxItem(typeof(CustomComboBox));
            Toolbox.Add(tbi);
        }
    }
    

    4. 检查错误信息

    如果上述步骤均未解决问题,检查是否有编译错误或警告,特别是与资源或类型发现相关的。确保所有必要的引用都已包含,并且没有命名空间冲突。

    5. 清理并重建项目

    最后,尝试清理并重新构建项目,以确保所有更改都已应用且没有缓存问题。

    执行以下命令:

    • 清理:右键点击解决方案 -> “清理解决方案”
    • 重建:右键点击解决方案 -> “重建解决方案”

    按照这些步骤操作后,通常可以在设计视图中看到自定义控件了。如果问题仍然存在,可能需要更深入地检查控件的设计时行为代码或Visual Studio的配置。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 6月14日