とまと あんらいぷ…

エンジニアの活動記録とかつぶやきとか

GitHub
スポンサードリンク

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

スポンサードリンク

【.NET】"&"(アンパサンド)が表示できない【C#】

C#のLabel(ラベル)コントロールに"&"を記載すると
画面表示時に"&"が表示されない・・・
C#での文字列操作において、エスケープシーケンスは"\"のはず。
というわけで、久々にハマった。

レガシーなwindowsアプリなんてほとんど作らないからすっかり忘れてたというか、
念頭になかったけど、ニーモニックキーが原因なんだね。

「& 表示されない」とか、「C# アンパサンド 表示」とか変なググり方をしてしまったけど
結果的にはニーモニックキーを無効にすることで回避できる。

Label UseMnemonicプロパティ

ちなみに、labelコントロールにフォーカスすることができない(TabStopプロパティがない)のに、
TabIndexプロパティがある理由は、ニーモニックキーがあるかららしい。

DOBON.NETプログラミング掲示板過去ログ > ラベルにタブ移動したい

Label に ファイル名(&N) としておいて、[Alt] + [N] キーを押下すると、
その次の TabIndex にあたるフォーカスを取得できるコントロールへフォーカス遷移します。

たいていの場合は、Label + TextBox の関係になっているため、
次の TextBox にフォーカスが移るわけですね。

これが、TabStop はなくて TabIndex がある理由です。

ということです。
深く調べると、.netのlabelコントロールはnative label (static) controlのラッパーだというところまで行ってしまうけど、ここでは割愛しますが、いろんな知識持っている人がいるんだなぁ。

MSDNフォーラム display ampercent (&) in label
A Compact Framework label is simply a small wrapper around a native label (static) control.


というわけで、もう一つの回避策としては、
アンパサンドをエスケープ("&&"と書く)することだね。

それにしても、せっかく原文のページを開きたいのに
勝手にGoogle翻訳に飛んでしまうブラウザの挙動を変更したい・・・
▼この記事を読んだ方は、こんな記事も読んでいます。▼

スポンサードリンク

テーマ:プログラミング - ジャンル:コンピュータ

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://dalmore.blog7.fc2.com/tb.php/40-5b2e1869
この記事にトラックバックする(FC2ブログユーザー)

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。