1

私はこの素敵なコードを使用していますが、これを達成するためのより良い方法を知っている場合は、お知らせいただければ幸いです。フローティングできるツールバーは次のとおりです。

http://en.csharp-online.net/Tool,_Menu,_and_Status_Strips%E2%80%94Floating_ToolStrips

良いですが、このツールバーにボタンが 4 つしかない場合はどうすればよいでしょうか。フロートにすると、以前にフォームにドッキングされていたのと同じサイズのままですが、サイズを変更して、必要なだけの長さにできたらいいのにと思います。ボタンを表示します。

4

3 に答える 3

1
  m_floatForm.AutoSize = True
  m_floatForm.AutoSizeMode = AutoSizeMode.GrowAndShrink
于 2010-08-09T16:17:58.233 に答える
1

個々のツールストリップ アイテムの幅を合計し、それをフォームの幅として使用できます。

これを置き換えます:

floatForm.ClientSize = this.Size;

これとともに:

//Adjust min value for your needs. It should account for the width of the
//toolstrip, borders, etc.
int minWidth = 20;  

int newWidth = minWidth;
foreach (ToolStripItem item in this.Items)
{
    newWidth += item.Size.Width;
}
floatForm.ClientSize = new Size(newWidth, this.Size.Height);
于 2010-06-24T01:11:45.913 に答える
0

PreferredSizeは私のためにトリックをしました。ToolStip で動作するとは思っていませんでしたが、少なくとも .Net 4.5 では動作します。

どこから来ているのかわからないいくつかのピクセルを考慮して、固定数を追加する必要がありました。

this.Width = toolStrip.PreferredSize.Width + toolStrip.Margin.Horizontal + toolStrip.Parent.Margin.Horizontal + toolStrip.Parent.Padding.Horizontal+20;
于 2015-08-28T22:14:56.207 に答える