C# で winforms を使用する Visual Studio 2010 ではstatusStrip、ツールチップ ビューアとして を使用しています。ほとんどの場合Controls、プロパティを使用しbuttonsて文字列に変換し、with イベントのテキストとして挿入します。文字列は で置き換えられます。textBoxesTagstatusStripMouseEnterMouseLeave
で同じことができるようにしたいのですが、同じよう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)」を に挿入します。mouseEntertooltipEntermenuItemTooltipEnterstatusStrip
menuItem Tagsと同じように処理されない理由を誰か教えてもらえますかtextBox Tags? この状況を改善するにはどうすればよいですか?