C#Winforms帮助文本更改字体
问题描述:
我有一些帮助弹出窗口,当用户按下“?”时显示一些文本。标签旁边的下拉菜单来解释不同的选择。C#Winforms帮助文本更改字体
我做了它使用Help.ShowPopup命令,因为这似乎是最简单的。
我希望有一种方法可以将不同的字体属性添加到文本的某些部分,或者至少对整个事物添加不同的字体属性,而无需转到CHM/HTML帮助文件的方向。
这里就是我想要做:
private void helpLbl_Click(object sender, EventArgs e)
{
// for some reason, it ignores the 'parent' parameter
// and lays it out on the screen's coordinates
Point helpLocation = helpLbl.PointToScreen(Point.Empty);
helpLocation.Y += helpLbl.Height; // have it display underneath the control
Help.ShowPopup(this, // hosting form
@"<b>Fixed:</b>
Removes a fixed amount from the sale
<b>Percent Value:</b>
Removes a set percentage of the selected package from the sale
...", helpLocation);
我希望,因为有使用的HTML文档显示的帮助下,我可以使用HTML标记来格式化正在显示的内容的选项,但它并不是如此。有任何想法吗?
有没有办法在帮助弹出窗口中显示RichTextBox?
另一种可能性是即时生成HTML文档,但如果我不直接提供文本,它会要求输入“url”,我认为这可能会导致少量的I试图在这里做。
答
你有两种选择。一种是使用WebBrowser Control。这本地接受HTML并显示它。它的问题是它的一种臃肿只是作为一个简单的标签使用。
你的第二个选择是简单地创建一个RichTextLabel,只是这样的:
public class RichTextLabel : RichTextBox
{
public RichTextLabel()
{
BorderStyle = BorderStyle.None;
}
}
添加到您的形式,并设置Rtf属性为您的RTF代码。您将不得不将HTML转换为RTF,例如,如果您有诸如Microsoft Word之类的程序,这很容易。
为什么不写你自己的帮助框?弹出一个控件或表单并不难,你可以根据自己的需要进行设计,包括一个RTB .. – TaW
嗯,我希望能够使用内置的功能来获得帮助,因此它看起来与人们期望的跨OS版本和用户设置等等。这是QA要求的一个小特点。 ps:对于墙壁文字感到抱歉,并感谢您将它们分开! –