2011-09-16 4 views
1

ErrorProviderを使用してアンパサンドを含むエラーメッセージを設定しようとしています。これは、アンパサンド文字が表示されませんSystem.Windows.Forms.ErrorProvider - "&"文字を表示

errorProvider.SetError(someControl, "You have not accepted the Terms & Conditions"); 

: 最初の試みは、次のように行ってきました。グーグルは、次のことを示唆した。

errorProvider.SetError(someControl, "You have not accepted the Terms &&& Conditions"); 

それは(すなわち1つのアンパサンドを表示する)動作しますが、私はそれが動作する理由を理解したいと思います。何か案は ?

EDIT:System.Windows.Forms.Labelコントロールには、UseMnemonicというプロパティがあり、これはFalseに設定できます。 ErrorProviderにはこのようなものがありますか?

答えて

3

「&」は、次の文字に下線を付けるための形式の特殊文字です。だからあなたが好きなように使うなら:

また、ホットキーになる「C」文字に下線が引かれます。それが起こらないようにするには、テキストに '& &'のような二重のアンパサンドを使用します。

+0

2つのアンパサンドを試しましたが、動作しませんでした。なぜ3つが必要なのか分かりません。 –

+0

トリプルアンパサンドは実際にアンパサンド文字に下線を引いています。 [UseMnemonic](http://msdn.microsoft.com/en-us/library/system.windows.forms.label.usemnemonic.aspx)プロパティをfalseに設定してください(コントロールがサポートしている場合)、単一のアンパサンドが必要です十分です。 –

+0

Label.Textでは2つのアンパサンドが動作しますが、ErrorProviderでは3つが必要と思われます(少なくとも、これは.net 2.0で見ているものです)。また、ErrorProviderにUseMnemonicプロパティがないようです。 –

関連する問題