2016-04-14 100 views
-1

我有一些帮助弹出窗口,当用户按下“?”时显示一些文本。标签旁边的下拉菜单来解释不同的选择。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试图在这里做。

+1

为什么不写你自己的帮助框?弹出一个控件或表单并不难,你可以根据自己的需要进行设计,包括一个RTB .. – TaW

+0

嗯,我希望能够使用内置的功能来获得帮助,因此它看起来与人们期望的跨OS版本和用户设置等等。这是QA要求的一个小特点。 ps:对于墙壁文字感到抱歉,并感谢您将它们分开! –

回答

1

你有两种选择。一种是使用WebBrowser Control。这本地接受HTML并显示它。它的问题是它的一种臃肿只是作为一个简单的标签使用。

你的第二个选择是简单地创建一个RichTextLabel,只是这样的:

public class RichTextLabel : RichTextBox 
{ 
    public RichTextLabel() 
    { 
     BorderStyle = BorderStyle.None; 
    } 
} 

添加到您的形式,并设置Rtf属性为您的RTF代码。您将不得不将HTML转换为RTF,例如,如果您有诸如Microsoft Word之类的程序,这很容易。