news 2026/6/24 8:09:30

【WinForm UI控件系列】消息面板(消息中心)控件MessagePanel

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【WinForm UI控件系列】消息面板(消息中心)控件MessagePanel

MessagePanel 是一个现代化的消息通知面板控件,支持消息筛选、已读/未读状态管理、删除确认等功能。适用于通知中心、消息列表、系统公告等场景。

一、示例效果



二、使用文档

MessagePanel 消息面板控件

控件名称

MessagePanel

中文名称

消息面板控件

控件优点

MessagePanel 是一个现代化的消息通知面板控件,支持消息筛选、已读/未读状态管理、删除确认等功能。适用于通知中心、消息列表、系统公告等场景。

主要特性

  • 消息筛选:支持全部/未读两种筛选模式
  • 已读/未读管理:未读消息显示红点标记,点击标题自动标记已读
  • 删除确认:删除消息时弹出确认对话框,防止误删
  • 鼠标滚轮滚动:支持鼠标滚轮滚动查看更多消息
  • 悬停效果:消息项悬停时显示边框高亮和删除按钮悬停效果
  • Tooltip提示:清空、关闭、删除按钮悬停显示提示文本
  • 主题适配:支持亮色/暗色主题切换
  • SVG图标:使用 SVG 图标管理器加载图标

重要参数说明

MessagePanel 控件属性

基本属性
属性名类型默认值说明
MessagesList<MessageItem>new List()消息列表数据
FilterMessageFilterAll筛选条件(全部/未读)
HeaderHeightint48标题栏高度
ItemSpacingint8消息项间距
ItemPaddingint15消息项内边距
CornerRadiusint8圆角半径
BorderWidthint1边框宽度
颜色属性
属性名类型默认值说明
BorderColorColor45, 45, 48边框颜色
HoverBorderColorColor80, 80, 88悬停边框颜色
HeaderBgColorColor30, 30, 33标题栏背景色
ItemBgColorColor35, 35, 38消息项背景色
HoverBgColorColor45, 45, 48悬停背景色
TextColorColor245, 245, 245文本颜色
SubTextColorColor150, 150, 160次要文本颜色
ButtonBgColorColor1, 139, 141按钮背景色
ButtonHoverBgColorColor26, 164, 166按钮悬停背景色
IconColorColor180, 180, 190图标颜色
DangerColorColor255, 77, 79危险色(删除/关闭悬停)
主题属性
属性名类型默认值说明
FollowGlobalThemebooltrue是否跟随全局主题

MessageItem 消息项属性

属性名类型默认值说明
Idstring自动生成12位消息唯一标识(自动生成)
Titlestringnull消息标题
Contentstringnull消息内容(支持换行)
DateDateTime?null消息日期
IsReadboolfalse是否已读
NoticeIconstring“notification”通知图标名称
ButtonTextstring“详情”跳转按钮文本
ButtonIconstring“right”跳转按钮图标
ShowButtonbooltrue是否显示跳转按钮
TagColorColor255, 77, 79未读红点颜色

MessageFilter 筛选枚举

说明
All显示全部消息
Unread仅显示未读消息

重要事件

事件名参数类型说明
TitleClickedMessageItem点击消息标题时触发
MessageDeletedMessageItem消息删除后触发
ClearedEventArgs清空全部消息时触发
ClosedEventArgs点击关闭按钮时触发

使用示例

基本使用

usingAntdUIEx.Controls.MessagePanel;// 创建消息面板MessagePanelmessagePanel=newMessagePanel();messagePanel.Size=newSize(400,500);messagePanel.Location=newPoint(10,10);this.Controls.Add(messagePanel);// 添加消息messagePanel.Messages.Add(newMessageItem{Title="系统通知",Content="您的账户已成功激活,欢迎使用系统。",Date=DateTime.Now,IsRead=false,NoticeIcon="notification"});

添加多条消息

// 添加多条消息messagePanel.Messages.AddRange(newMessageItem[]{newMessageItem{Title="豆包大模型 2.1 已上线",Content="豆包已上线豆包大模型 2.1,Agent、代码交付、多模态能力全面增强。",Date=DateTime.Now.AddDays(-1),IsRead=false,NoticeIcon="notification"},newMessageItem{Title="版本更新通知",Content="系统已更新至最新版本,请查看更新日志。",Date=DateTime.Now.AddDays(-2),IsRead=true,NoticeIcon="info"},newMessageItem{Title="安全提醒",Content="检测到异常登录行为,请及时修改密码。",Date=DateTime.Now.AddHours(-3),IsRead=false,NoticeIcon="warning"}});

绑定事件

// 标题点击事件messagePanel.TitleClicked+=(sender,item)=>{MessageTip.ShowAtMouse($"点击标题:{item.Title}");// item.IsRead 已自动设置为 true};// 消息删除事件messagePanel.MessageDeleted+=(sender,item)=>{MessageTip.ShowAtMouse($"已删除消息:{item.Title}");};// 清空事件messagePanel.Cleared+=(sender,e)=>{MessageTip.ShowAtMouse("已清空全部消息");};// 关闭事件messagePanel.Closed+=(sender,e)=>{MessageTip.ShowAtMouse("面板已关闭");// 可以隐藏面板或执行其他操作messagePanel.Visible=false;};

切换筛选模式

// 显示全部消息messagePanel.Filter=MessageFilter.All;// 仅显示未读消息messagePanel.Filter=MessageFilter.Unread;

自定义样式

// 自定义颜色messagePanel.HeaderBgColor=Color.FromArgb(24,144,255);messagePanel.ButtonBgColor=Color.FromArgb(24,144,255);messagePanel.TextColor=Color.White;messagePanel.BorderColor=Color.FromArgb(24,144,255);// 自定义尺寸messagePanel.HeaderHeight=56;messagePanel.ItemSpacing=12;messagePanel.ItemPadding=20;messagePanel.CornerRadius=12;

自定义消息项

// 自定义消息项样式messagePanel.Messages.Add(newMessageItem{Title="自定义消息",Content="这是一条自定义样式的消息。",Date=DateTime.Now,IsRead=false,NoticeIcon="star",// 自定义图标ButtonText="查看详情",// 自定义按钮文本ButtonIcon="arrow-right",// 自定义按钮图标ShowButton=true,// 显示按钮TagColor=Color.FromArgb(255,77,79)// 自定义红点颜色});// 隐藏跳转按钮messagePanel.Messages.Add(newMessageItem{Title="无跳转按钮消息",Content="这条消息没有跳转按钮。",Date=DateTime.Now,IsRead=false,ShowButton=false});

主题适配

// 跟随全局主题(默认)messagePanel.FollowGlobalTheme=true;// 禁用主题跟随,使用自定义颜色messagePanel.FollowGlobalTheme=false;messagePanel.HeaderBgColor=Color.FromArgb(30,30,30);messagePanel.ItemBgColor=Color.FromArgb(35,35,35);

删除消息

// 通过代码删除消息stringmessageId="ABC123XYZ456";messagePanel.DeleteMessage(messageId);// 清空全部消息messagePanel.ClearMessages();

完整示例

publicpartialclassNotificationForm:Form{privateMessagePanelmessagePanel;publicNotificationForm(){InitializeComponent();InitializeMessagePanel();}privatevoidInitializeMessagePanel(){messagePanel=newMessagePanel();messagePanel.Size=newSize(380,450);messagePanel.Location=newPoint(20,20);this.Controls.Add(messagePanel);// 添加示例消息messagePanel.Messages.AddRange(newMessageItem[]{newMessageItem{Title="新功能发布",Content="系统新增数据导出功能,支持Excel、PDF等多种格式导出。",Date=DateTime.Now.AddHours(-1),IsRead=false,NoticeIcon="notification"},newMessageItem{Title="账户安全提醒",Content="您的密码已超过90天未更新,建议及时修改以确保账户安全。",Date=DateTime.Now.AddDays(-3),IsRead=true,NoticeIcon="warning"},newMessageItem{Title="系统维护通知",Content="系统将于本周六凌晨2:00-4:00进行例行维护,届时服务将暂停。",Date=DateTime.Now.AddDays(-5),IsRead=false,NoticeIcon="info"}});// 绑定事件messagePanel.TitleClicked+=OnTitleClicked;messagePanel.MessageDeleted+=OnMessageDeleted;messagePanel.Cleared+=OnCleared;messagePanel.Closed+=OnClosed;}privatevoidOnTitleClicked(object?sender,MessageItemitem){MessageTip.ShowAtMouse($"已查看:{item.Title}");}privatevoidOnMessageDeleted(object?sender,MessageItemitem){MessageTip.ShowAtMouse($"已删除:{item.Title}");}privatevoidOnCleared(object?sender,EventArgse){MessageTip.ShowAtMouse("已清空全部消息");}privatevoidOnClosed(object?sender,EventArgse){messagePanel.Visible=false;}}

注意事项

  1. 消息ID:MessageItem 的 Id 属性会在首次访问时自动生成12位随机字符串,无需手动设置
  2. 已读状态:点击消息标题会自动将消息标记为已读,红点消失
  3. 删除确认:点击删除按钮会弹出确认对话框,确认后才会删除消息
  4. 滚动支持:当消息数量较多超出面板高度时,支持鼠标滚轮滚动
  5. 主题适配:默认跟随全局主题,可通过 FollowGlobalTheme 属性禁用
  6. SVG图标:NoticeIcon、ButtonIcon 等图标属性使用 SvgIconManager 管理的图标名称
  7. 设计时支持:在设计器中不会加载SVG图标,避免设计器异常

版本更新

2026-06-23

  • 新增:MessagePanel 消息面板控件
  • 新增:MessageItem 消息项数据类
  • 新增:全部/未读筛选功能
  • 新增:已读/未读红点标记
  • 新增:删除确认对话框
  • 新增:鼠标滚轮滚动支持
  • 新增:Tooltip提示文本
  • 新增:主题适配支持
  • 新增:TitleClicked、MessageDeleted、Cleared、Closed 事件

三、后记说明

更多控件,敬请关注,如有需求、好的建议,请留言(xue5zhijing)

更多控件:更多:https://blog.csdn.net/uaime/article/details/161663833

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/24 8:08:59

华为MetaERP SAP FI-AA vs Oracle EBS FA:资产期间关闭可逆 / 不可逆 —— 设计哲学 + 底层实现逻辑完整对比一、核心现象先明确边界SAP FI-AA(资产会计)

SAP FI-AA vs Oracle EBS FA&#xff1a;资产期间关闭可逆 / 不可逆 —— 设计哲学 底层实现逻辑完整对比一、核心现象先明确边界SAP FI-AA&#xff08;资产会计&#xff09; 月度期间&#xff1a;通过OB52控制资产账户类型 A 的过账期间&#xff0c;已关闭期间可重新打开&…

作者头像 李华
网站建设 2026/6/24 8:08:19

学生视角下的技术探索:扫雷、Gitee、Qoder与微信小程序初体验总结

1. 引言 作为一名计算机专业的学生&#xff0c;最近在老师的引导下接触了四个看似不同但内在关联的技术应用&#xff1a;经典游戏“扫雷”、代码托管平台Gitee、代码生成工具Qoder&#xff0c;以及微信小程序开发。虽然受时间限制&#xff0c;我们只是“管中窥豹”&#xff0c…

作者头像 李华
网站建设 2026/6/24 8:08:12

H139网址导航:深耕一为主题生态,打造导航建站优质标杆!

在WordPress导航建站领域&#xff0c;一为主题凭借轻量化架构、高自由度定制、模块化布局的核心优势&#xff0c;成为无数个人站长、资源博主搭建导航站点的首选模板。而H139导航&#xff0c;正是深耕一为主题生态、专注模板优化创新的优质标杆站点&#xff0c;长期以来深耕导航…

作者头像 李华
网站建设 2026/6/24 8:04:36

基于多目标鲸鱼优化算法(NSWOA)求解地铁隧道竖向位移和成本的双目标求解(以铁道科学报与工程文章为例)研究附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长毕业设计辅导、数学建模、数据处理、程序设计科研仿真。&#x1f34e;完整代码获取 定制创新 论文复现点击&#xff1a;Matlab科研工作室&#x1f447; 关注我领取海量matlab电子书和数学建模资料 &#x1f3…

作者头像 李华
网站建设 2026/6/24 8:00:35

分布式存储嵌入式调试

分布式存储嵌入式调试&#xff1a;构建智能系统的隐形支柱 在物联网和边缘计算快速发展的今天&#xff0c;嵌入式系统正逐渐从单机走向分布式协同。分布式存储作为其核心支撑&#xff0c;不仅需要处理海量数据&#xff0c;还需确保实时性与可靠性。而调试这一复杂系统&#xf…

作者头像 李华
网站建设 2026/6/24 7:56:47

技术部署的标准化流程与环境管理

技术部署的标准化流程与环境管理 在数字化转型的浪潮中&#xff0c;技术部署的标准化流程与环境管理成为企业高效运营的核心保障。无论是软件开发、系统升级还是基础设施搭建&#xff0c;标准化流程能够减少人为错误&#xff0c;提升效率&#xff1b;而科学的环境管理则确保技…

作者头像 李华