C# 如何在tabcontrol中向tabpage添加标记

C# 如何在tabcontrol中向tabpage添加标记,c#,tabcontrol,C#,Tabcontrol,我需要在右上角的选项卡控件中添加徽章。我试过并想出了这门课 公共类 { 私有静态列表控件=新列表(); 静态公共bool AddBadgeTo(控制ctl、字符串文本、整数y、整数x) { if(controls.Contains(ctl))返回false; 徽章=新徽章(); //badge.AutoSize=true; 徽章尺寸=新尺寸(20,20); badge.Text=文本; badge.BackColor=Color.FromArgb(255128,64); 控制。添加(ctl);

我需要在右上角的选项卡控件中添加徽章。我试过并想出了这门课

公共类
{
私有静态列表控件=新列表();
静态公共bool AddBadgeTo(控制ctl、字符串文本、整数y、整数x)
{
if(controls.Contains(ctl))返回false;
徽章=新徽章();
//badge.AutoSize=true;
徽章尺寸=新尺寸(20,20);
badge.Text=文本;
badge.BackColor=Color.FromArgb(255128,64);
控制。添加(ctl);
控制添加(徽章);
设置位置(标记、控制、x、y);
返回true;
}
静态私有无效设置位置(徽章、控制ctl、int x、int y)
{
徽章位置=新点(x,
y) );
}
班级徽章:标签
{
颜色背景色=Color.SkyBlue;
颜色前景色=颜色。白色;
Font Font=新字体(“无衬线”,9f);
公共活动;
公共徽章(){}
受保护的覆盖无效OnPaint(PaintEventArgs e)
{
e、 Graphics.FillEllipse(新的SolidBrush(Color.FromArgb(255,0,0)),
这是一种新方法(ClientRectangle);
e、 绘图字符串(文本、字体、新SolidBrush(前景色)、3、1);
}
受保护的覆盖void OnClick(EventArgs e)
{
单击事件(此);
}
}
}
而且是这样用的

BadgeUtil.AddBadgeTo(tabPage3, "3",0,120);
这导致了这种不理想的输出。我希望我的徽章位于选项卡控件的蓝色圆圈上,如图所示,而不是徽章所在的位置


这并不是那么简单-您正在将徽章添加到
选项卡页面
,但需要在
选项卡控件
上绘制徽章。检查此链接:。他们添加了关闭按钮
选项卡
,如果您删除单击逻辑并更改其绘制方式,您将拥有您的徽章。@Quercus我无法将您的建议与我的问题联系起来您试图做的是将徽章添加到
选项卡
<代码>选项卡页面是选项卡行下方的空白区域。添加的控件无法在选项卡行上绘制自身。我建议覆盖在
TabsControl
中绘制制表符行的方式,并将链接附加到类似问题