C# で winforms を使用する Visual Studio 2010 ではstatusStrip
、ツールチップ ビューアとして を使用しています。ほとんどの場合Controls
、プロパティを使用しbuttons
て文字列に変換し、with イベントのテキストとして挿入します。文字列は で置き換えられます。textBoxes
Tag
statusStrip
MouseEnter
MouseLeave
で同じことができるようにしたいのですが、同じようMenuItems
に扱われていないようControls
です。いつ注入に失敗したかがわかるように「デバッグ」文字列を設定しました。これにより、同じように処理されていないことがTag
わかります。MenuItems
両方のメソッドのコードはtooltipEnter
次menuItemTooltipEnter
のとおりです。
//Injects sender tag as string into status strip (used for Controls)
private void tooltipEnter(object sender, EventArgs e)
{
var c = sender as Control;
if (c == null) { toolStripStatusLabel1.Text = "null(0)"; return; }
toolStripStatusLabel1.Text = Convert.ToString(c.Tag);
}
//Injects sender tag as string into status strip (used for MenuItems)
private void menuItemTooltipEnter(object sender, EventArgs e)
{
var c = sender as MenuItem;
if (c == null) { toolStripStatusLabel1.Text = "null(0)"; return; }
toolStripStatusLabel1.Text = Convert.ToString(c.Tag);
}
ご覧のとおりControl
、マウスで "" を入力するたびに、文字列が に挿入されますstatusStrip
。このコードが機能しています。
ただし、どちらかまたはのイベントを指すmenuItem
場合、両方とも「null(0)」を に挿入します。mouseEnter
tooltipEnter
menuItemTooltipEnter
statusStrip
menuItem
Tags
と同じように処理されない理由を誰か教えてもらえますかtextBox
Tags
? この状況を改善するにはどうすればよいですか?