在GroupBox和TreeView中显示带有Ampersand的字符串

时间:2018-03-12 16:56:11

标签: c# winforms

我有这样的代码(简化问题):

public const string THIS_AND_THAT = "This & That";

System.Windows.Forms.GroupBox myGroupBox;
System.Windows.Forms.TreeView myTreeView;
System.Windows.Forms.TreeNode myTreeNode;

myGroupBox.Text = THIS_AND_THAT;

myTreeNode = new TreeNode(THIS_AND_THAT);
myTreeNode.Name = THIS_AND_THAT;
myTreeView.Nodes.Add(THIS_AND_THAT);

使用此代码,GroupBox显示为" This That"并且TreeView正确显示为"此&也就是说&#34 ;.

所以我将字符串(as suggested here)更改为:

public const string THIS_AND_THAT = "This && That";

在这种情况下,GroupBox正确显示为"此&那个",但TreeView显示为"这&&也就是说&#34 ;. 我没有看到我可以在GroupBox或TreeView上使用UseMnemonic属性。

我该怎么办?

1 个答案:

答案 0 :(得分:1)

(将我的评论推荐给答案):

Windows和WinForms中的不同控件如何处理向用户显示的字符串存在不一致,因为您发现TreeViewGroupBox时不支持转义的&符号。

幸运的是,提供适当的文字非常简单:

String text = "This && that";

myGroupBox.Text = text;
myTreeNode.Text = text.Replace("&&", "&");