(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 开头的控件(比如 UITabControlUIButtonUILabel 等):拖进该分组即可

步骤 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,修改窗体基类是必做步骤

相关推荐
雨落倾城夏未凉3 天前
第四章c#方法-参数数组和可选参数(16)
后端·c#
唐青枫4 天前
线程不是越多越快:C#.NET Thread 生命周期、同步与后台工作线程实战
c#·.net
唐青枫5 天前
别只会反射:C#.NET Emit 动态生成代码实战详解
c#·.net
咕白m6255 天前
.NET 环境下 Word 超链接批量提取方案
c#·.net
用户91721561902115 天前
C# 通信协议增量解析:用状态机处理半包和粘包
c#
小码编匠6 天前
C# 工控上位机必备:数据转换工具类与十个核心模块
后端·c#·.net
唐青枫8 天前
别再乱用 StartNew:C#.NET TaskFactory 任务调度实战详解
c#·.net
Artech8 天前
[MAF预定义的AIContextProvider-03]ChatHistoryMemoryProvider——赋予Agent从经验中学习的能力
ai·c#·agent·memory·maf
Scout-leaf10 天前
C#摸鱼实录——IoC与DI案例详解
c#
咕白m62510 天前
使用 C# 在 Excel 中应用多种字体样式
后端·c#