C# 您如何表示';单选按钮或复选按钮中是否有工具提示?

C# 您如何表示';单选按钮或复选按钮中是否有工具提示?,c#,tooltip,C#,Tooltip,我有一个单选按钮和相关的工具提示。但是我想让用户立即意识到那里有一个工具提示。我听说过一些程序在圆周内使用黄色问号。 c#上是否存在同样的问题?您可以尝试以下方法: public void adornQM(Control ctl) { Label QM = new Label(); QM.Text = "?"; QM.Font = new Font("Arial", 6f, FontStyle.Regular); QM.BackColor = Color.Yell

我有一个单选按钮和相关的工具提示。但是我想让用户立即意识到那里有一个工具提示。我听说过一些程序在圆周内使用黄色问号。
c#上是否存在同样的问题?

您可以尝试以下方法:

public void adornQM(Control ctl)
{
    Label QM = new Label();
    QM.Text = "?";
    QM.Font = new Font("Arial", 6f, FontStyle.Regular);
    QM.BackColor = Color.Yellow;
    QM.Location = new Point(ctl.Width - 8, 0);
    ctl.Controls.Add(QM);
}
adornQM(checkBox1);
adornQM(radioButton1);
然后像这样使用它:

public void adornQM(Control ctl)
{
    Label QM = new Label();
    QM.Text = "?";
    QM.Font = new Font("Arial", 6f, FontStyle.Regular);
    QM.BackColor = Color.Yellow;
    QM.Location = new Point(ctl.Width - 8, 0);
    ctl.Controls.Add(QM);
}
adornQM(checkBox1);
adornQM(radioButton1);
它向控件的控件集合添加标签。如果控件的文本后面有一两个空格,效果最好

只需稍加努力,您就可以通过所有者绘图或多或少地扭曲它

public void adornQM(Control ctl)
{
    Label QM = new Label();
    QM.Font = new Font("Arial", 7f, FontStyle.Regular);
    QM.Location = new Point(ctl.Width - 13, 0);
    QM.Paint += QM_Paint;
    ctl.Controls.Add(QM);
}

void QM_Paint(object sender, PaintEventArgs e)
{
    Label  QM = sender as Label;
    e.Graphics.FillEllipse(Brushes.Yellow, 0, 0, 12, 12);
    e.Graphics.DrawEllipse(Pens.DarkSlateBlue, 0, 0, 12, 12);
    e.Graphics.DrawString("?", QM.Font, Brushes.Black, 2, 1);
}

两个版本都将为您修饰的每个控件添加一个额外控件。相反,您可以自己绘制所有控件,但这看起来需要更多的工作。

您可以添加一个。我怀疑你是否“免费”得到它还有:WinForms、WPF、Silverlight、ASP.NET所有这些都是C。不清楚您打算使用哪种技术。@Noctis猜测是时候检查charmap了:(一个大写的问号就可以了,但在角色地图上找不到它似乎我当时不明白你的意思,而且有点像Ѡ。回答得很好,真的没想到会出现这样的情况。有一个疑问,我应该把adornQM方法放在哪里?在通常的类中,它会给出模糊的错误,所以我在form1.designer.cs上尝试了它,但错误是或者保持不变。我把它放在表单类级别。你得到了什么“模糊错误”吗?我在
InitializeComponent()之后调用了构造函数中的函数;
关于ctl参数前的第一个控件:“control”是“System.Windows.Forms.control”和“System.Windows.Controls.control”之间的模糊引用。哦,让我们看看:您还没有告诉我们您是为哪个平台开发的:Winforms、WPF、ASP.?
System.Windows.Controls.control
命名空间属于WPF。如果如果您没有使用WPF,您不应该引用它,或者,如果您确实需要它,您必须将像
Control
这样的模棱两可的成员完全限定为:
System.Windows.Forms.Control