C#
パターン2: ToolStrip —アイコン付きツールバー
出典: WinForms メニュー3兄弟 — MenuStrip / ToolStrip / ContextMenuStrip の使い分けと DataGridView 連携 — パターン2: ToolStrip —アイコン付きツールバー
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
// ToolStripButtonのClickイベント
saveButton.Click += (sender, e)=>
{
SaveData();
};
printButton.Click += (sender, e)=>
{
PrintData();
};
//アイコン画像の透過設定(マゼンタ背景のICOの場合)
saveButton.ImageTransparentColor = Color.Magenta;
printButton.ImageTransparentColor = Color.Magenta;
// ToolStripに動的にアイテム追加(実行時拡張)
var refreshButton = new ToolStripButton("更新");
refreshButton.Click += (s, e)=> RefreshData();
mainToolStrip.Items.Add(refreshButton);
}
private void PrintData(){ /* ... */ }
private void RefreshData(){ /* ... */ }
}
▸ この snippet は実行結果未収録
▸ 実行結果は未収録です
Source収録記事
この snippet は記事の「パターン2: ToolStrip —アイコン付きツールバー」セクションに登場する。コードの前後の文脈・ハマりどころの解説は記事本文で。
同じ記事から
5 件//デザイナでMenuStripを追加し、Itemsに「ファイル」「編集」「ヘルプ」を登録 //「ファイル」配下に「開く」「保存」「終了」サブメニュー public partial class MainForm : Form未収録
パターン1: MenuStrip —フォーム上部のメインメニュー
#a77c3de514d9
public partial class MasterForm : Form { public MasterForm() {未収録
パターン3: ContextMenuStrip + DataGridView —右クリック編集メニュー
#a8ee6da07168
private void rowContextMenu_Opening(object sender, CancelEventArgs e) { //メニュー全体をキャンセル(表示しない) if (masterGridView.CurrentRow == null)未収録
パターン4: ContextMenuStrip.Opening —動的な表示制御
#00a271c9dc03
// ❌ NG:同一コントロールにContextMenuとContextMenuStrip両方設定 // myControl.ContextMenu = oldMenu; //旧式 // myControl.ContextMenuStrip = newStrip; //新式 // →動作は新式(ContextMenuStrip)が優先されるが、旧式のItemsは無視される未収録
ハマりポイント整理—旧式と新式の混在トラブル
#965b4140b789
//安全な切り替え myControl.ContextMenu = null; myControl.ContextMenuStrip = newStrip;未収録
ハマりポイント整理—旧式と新式の混在トラブル
#68f767bcd3df
