ToolStripItemは、ToolStripまたはToolStripDropDownに配置できる要素の基本クラスです。
型 | プロパティ | 内容 |
---|---|---|
string | Text | 項目に表示されるテキスト |
string | Name | 項目の名前。これはToolStripItemCollectionのキーとして使用できる |
ToolStripItemDisplayStyle | DisplayStyle | テキストと画像をどのように表示するか |
bool | Visible | trueならば、項目は表示される。これをtrueに設定しても、実際に表示されるまではfalseを返す
ControlのShow()やHide()に相当するメソッドはない |
ToolStripItemAlignment | Alignment | 項目をToolStripの先頭または末尾にそろえる。ただしLayoutStyleがFlowまたはTableならば無視されるRemarks - ToolStripItem.Alignment Property (System.Windows.Forms) | Microsoft Learn
複数の項目をRightとしたときは、コンテナに最初に追加した項目が右端に配置される |
bool | AutoSize | trueならば、自動的にサイズが合わせられる。既定はtrue
trueならばToolStripの向きによって高さまたは幅が調整され、必要な空間のみが使用される。またtrueのときはシステムで定義された最小サイズがあるため、それよりも小さくしたいならばfalseとする |
Padding | Margin | 隣接する項目との間隔 |
型 | プロパティ | 内容 |
---|---|---|
string | ToolTipText | ツールチップとして表示するテキスト |
bool | AutoToolTip | trueならば、ToolTipTextが設定されていないときにTextプロパティの値をツールチップとして用いる |
ToolTipTextが空文字列、またはAutoToolTipがtrueのときTextが空文字列ならば、ツールチップは表示されません。
表示されるツールチップの色やフォントを変更するにはToolTipを代わりに表示し、オーナー描画で処理します。c# - Is it possible to change ToolStripMenuItem tooltip font? - Stack Overflow
StatusBarでツールチップを表示するには、ShowItemToolTipsをtrueとします。
型 | プロパティ | 内容 |
---|---|---|
bool | CheckOnClick | trueならば、クリックされたときに押された状態と押されていない状態を表す。既定はfalse |
bool | AutoToolTip | 既定はtrueであり、ToolTipTextを設定していなくてもTextプロパティの値がツールチップとして表示される |
機能はButtonコントロールと同じですが、継承関係は大きく異なります。
型 | プロパティ | 内容 |
---|---|---|
bool | IsLink | trueならば、ハイパーリンクとして機能する |
ToolStripLabelを拡張したクラスであり、下表の3つのプロパティが追加されています。
型 | プロパティ | 内容 |
---|---|---|
Border3DStyle | BorderStyle | 境界線のスタイル |
ToolStripStatusLabelBorderSides | BorderSides | 境界線を表示する位置 |
bool | Spring | trueならば、空き領域を埋めるように幅が広がる |
メニュー項目の区切り線 (セパレータ) を表すクラスです。ToolStripSeparator クラス (System.Windows.Forms) | MSDN
メニュー デザイナでは項目のテキストを"-"とすると、ToolStripSeparatorとしてメニューに追加されます。備考 - ToolStripSeparator クラス (System.Windows.Forms) | MSDN
.NET 2.0より前はこのような区切り線を表すクラスはなく、MenuItemのテキストを"-"とすることで表現していました。How do you add a separator to a WinForms menu in C#? - Stack Overflow
基本的にComboBoxクラスと同じです。
型 | プロパティ | 内容 |
---|---|---|
bool | ShortcutsEnabled | trueならば、Ctrl + ZやCtrl + Cなどの定義されたショートカットキーが有効になる |
bool | AcceptsReturn | trueならば、複数行形式のときにEnterで新しい行が追加される。さもなくば、Enterでフォームの既定のボタンがアクティブになる |
Size | DefaultSize | 既定のサイズで、100x25ピクセル |
Control | Control | このToolStripControlHostがホストしているコントロール。その実体はTextBoxを継承しているToolStripTextBoxControl |
TextBoxとは異なり、コンテナのサイズに合わせてサイズが拡大/縮小されるように設定できません。それを実現するにはこのToolStripTextBoxを継承したクラスを作成し、GetPreferredSize()をオーバーライドします。方法: ToolStripTextBox を拡大して ToolStrip の残りの幅に合わせる - Windows Forms .NET Framework | Microsoft Learn
ProcessMnemonic()は、空文字列以外がTextプロパティに設定されていないと、コンテナであるToolStripから呼ばれません。ProcessMnemonic - ToolStrip.cs
コンテナであるToolStripのTabStopプロパティがfalseのとき、TabキーではToolStrip内の項目の間でフォーカスが移るのみで、ToolStrip外からはフォーカスが移りません。
ToolStripItemはControlを継承しないため、そこで定義されているControl.Invoke()を利用したスレッドセーフな呼び出しができません。しかしこのコントロールのコンテナとなるToolStripはそれを継承するため、GetCurrentParent()で取得できるToolStripを通して呼び出します。.net - How do I make cross-threaded calls to a ToolStripStatusLabel? - Stack Overflow
もしくはToolStripItemの最上位のコンテナとなっているはずのFormからならば、そのまま呼び出せます。
ToolStripControlHostを継承しているToolStripTextBoxなどならば、そのControlプロパティからホストしているControlを得ることで、そのメソッドを呼び出せます。