(c#)System.Windows -> SunnyUI

要将标准的 System.Windows.Forms.TabControl 转换为 SunnyUI 风格的 Sunny.UI.UITabControl,核心是替换控件类型 并迁移属性,以下是两种最直接的实现方法

方法一:直接替换控件(推荐,适合已布局好的项目)

如果TabControl 已经添加了选项卡和内容,直接修改代码文件即可保留原有布局,无需重建:

  1. 关闭窗体设计器:确保当前窗体的设计界面已关闭,仅保留代码视图。

  2. 打开窗体的设计器代码文件 :在 "解决方案资源管理器" 中,展开你的窗体文件(如 Form1.cs),双击打开 Form1.Designer.cs(若隐藏,点击 "显示所有文件")。

  3. 批量替换类型 :按下 Ctrl+F 打开搜索框,在该文件中搜索 System.Windows.Forms.TabControl,将其全部替换 为 Sunny.UI.UITabControl。 重点检查两处: ① 控件声明行:private System.Windows.Forms.TabControl tabControl1; → private Sunny.UI.UITabControl tabControl1; ② 实例化行:this.tabControl1 = new System.Windows.Forms.TabControl(); → this.tabControl1 = new Sunny.UI.UITabControl();

  4. 添加命名空间 :在 Form1.Designer.cs 文件的顶部,确认已添加 SunnyUI 命名空间(若没有则手动添加):

    复制代码
    using Sunny.UI;
  5. 保存并刷新设计器 :保存文件后,重新打开窗体设计器,此时 tabControl1 已变为 UITabControl,属性面板会自动显示图二的 SunnyUI 专属配置项。

方法二:重新添加控件

步骤 1:确认 SunnyUI 控件已加载到工具箱

  1. 在 Visual Studio 右侧 / 左侧的 工具箱 面板中,右键点击任意空白处 → 选择 选择项
  2. 在弹出的「选择工具箱项」窗口中,点击 浏览 按钮 → 找到你项目中 NuGet 安装的 SunnyUI.dll 文件。
  3. 选中 SunnyUI.dll 后点击「确定」
  4. Visual Studio 加载第三方控件时,若控件没有指定「默认分组名称」,就会默认归类到「菜单和工具栏」(或「所有 Windows 窗体」)分组,这只是显示归类问题,控件的功能、使用方式完全不受影响
  5. (可选) 手动创建「SunnyUI」分组 (1)打开工具箱,在任意空白处右键 → 选择 添加选项卡 → 输入名称 SunnyUI(按回车确认),此时工具箱会新增一个空的「SunnyUI」分组。 (2)在「菜单和工具栏」分组里,找到所有以 UI 开头的控件(比如 UITabControl、UIButton、UILabel 等):拖进该分组即可

步骤 2:配置 SunnyUI 专属样式

在属性面板中,找到 SunnyUI 专属的样式属性(这些是图二特有的,普通 TabControl 没有)

常用属性 作用说明 示例值
TabPosition 选项卡位置 Left(左侧)
FillColor 控件背景色 245,245,245(浅灰)
TabNormalColor 未选中选项卡的颜色 220,220,220
TabSelectedColor 选中选项卡的颜色 60,160,255(蓝色)
TabSelectedForeColor 选中选项卡的文字颜色 255,255,0(黄色)
ShowRect 是否显示控件边框 True/False
Font 选项卡文字字体(SunnyUI 适配) 微软雅黑,9pt

新手遇到的问题:

拖拽 SunnyUI 控件报「空引用」错误,核心原因是窗体未继承 UIForm,修改窗体基类是必做步骤

相关推荐
何以解忧唯有撸码5 小时前
c# + YOLODotNet+OpenCVSharp 实现物品轨迹追踪
计算机视觉·c#·winform·yolov8·opencvsharp
阿松爱学习15 小时前
【Unity开发】局部区域截图功能实现
unity·c#
zhanghaha131416 小时前
C# 系列教程_1 基础语法篇(面向新手系统教程)
开发语言·c#
昂好的day17 小时前
固高运动控制卡实战(下):点位运动与直线/圆弧插补 API 详解
开发语言·c#
淡海水21 小时前
08-02-优化-LINQ与函数式编程的GC代价
unity·c#·.netcore·linq·gc
sali-tec21 小时前
C# 基于OpenCv的视觉工作流-章114-视觉与http通讯
图像处理·人工智能·opencv·计算机视觉·c#
波力海苔夹心脆6751 天前
C# 委托与事件详解:委托声明、Action/Func、多播、event 与 EventHandler 入门教程
开发语言·c#·.net·上位机·委托·事件
He BianGu2 天前
【笔记】C# 中BindingFlags的详细作用
笔记·c#
?abc!2 天前
(贪心)621. 任务调度器
java·前端·c#
开开心心就好2 天前
电脑小说阅读器,支持朗读和自定义皮肤
服务器·开发语言·javascript·算法·pdf·c#·音视频