ToolStrip

Officeのメニューバーのようなコントロールが楽しい。
画面に検索ボタンを並べなくても、すっきりと整理できるからだ。
しかし見たところブラウザのリンクのようなものや、チェックボックスがない。
ちょっと不便だなとおもったけれど、調べてみたらToolStripLabelにIsLinkってプロパティがあった。
これをTrueにしたら、リンクのように振舞う。
チェックボックスは、ToolStripLabel継承して作れた。あっさりつくれて嬉しい。
以下、簡単な手順
ToolStripLabelにイメージとテキストを並べて表示する機能があるのでこれを活用。

これを使ってイメージを C:\Program Files\Microsoft Visual Studio 8\Common7\VS2005ImageLibrary\VS2005ImageLibrary.zip
からチェックボックスのイメージと、それを加工してOFFの状態にしたものを用意
ToolStripLabel継承したクラスにCheckedプロパティの追加と

コンストラクタで設定
ImageTransparentColor = System.Drawing.Color.Magenta;
TextImageRelation = TextImageRelation.ImageBeforeText;

としておいて、以下のような感じでイメージを差し替えるようにすれば完成

>

protected override void OnClick(EventArgs e) {
this.checkedFlag = !this.checkedFlag;
base.OnClick(e);
RefreshImage();
}

private void RefreshImage() {
System.Reflection.Assembly asm = Assembly.GetExecutingAssembly();
if (this.checkedFlag) {
base.Image = Image.FromStream(asm.GetManifestResourceStream(
"Control_Checkbox.bmp"));
return;
}
base.Image = Image.FromStream(asm.GetManifestResourceStream(
"Control_CheckboxOff.bmp"));
}<|