問題タブ [toolstrippanel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
7249 参照

user-interface - ToolStrip を既存の ToolStrip と並べて ToolStripPanel に追加しようとしています

Visual Studio 2005 で .net 2.0 を使用しています。フォームの上部に 2 つの異なるツールストリップを追加して、並べて表示しようとしています。Word 2003 のようにして、複数のツールストリップを同じ行に追加し、各ツールストリップに行を割り当てるのではなく、それらを並べて表示できるようにしたいと考えています。

そこで、ToolStripPanel を追加して、フォームの上部にドッキングしました (余分なパネルはすべて必要ないため、ToolStripContainer は使用しませんでした。上部に 1 つだけ必要です)。両方のツールストリップを追加し、それらの Stretch プロパティを False に設定しました。これらをデザイナー ウィンドウに並べて表示することはできますが、実行時に ToolStripPanel はツールストリップを分離し、各ツールストリップに専用の行を提供します。怪我に侮辱を加えるかのように、デバッグを停止してデザイナーに戻ると、デザイナーがツールストリップを独自の行にも移動していることに気付きます! ここで何か間違ったことをしていますか?

私は一日中グーグルをしており、ToolStripPanelRow オブジェクトに関する情報をいくつか見つけましたが、ツールストリップを追加する簡単な方法がわかりません (つまり、ToolStripPanelRow.Controls.Add メソッドなどはありません)。コントロール オブジェクトの配列を返す Controls() プロパティがあり、その配列にアイテムを追加しようとしてもうまくいきませんでした。また、ToolStripPanel.Join メソッドに関するドキュメントもいくつか見つけました。私が何をしたり、どのオプションを試したりしても、常に新しいツールストリップがパネルの上部の独自の行に追加され、他のすべてが押し下げられます。

完全な開示のために、ToolStripPanel とツールストリップの 1 つが基本クラス フォームに追加されており、基本クラス フォームから継承するサブクラス フォームに他のツールストリップを追加しようとしていることを警告しておきます。基本クラス フォームの ToolStripPanel と ToolStrip は両方とも「Protected Friend」として宣言されているため、これは機能するはずです。前述したように、サブクラス フォームのデザイナ ウィンドウを使用すると、(少なくとも、しばらくの間は) それを行うことができます。

誰かが私がこれを機能させるのを手伝ってくれるか、少なくともなぜそうでないのかを明らかにすることができれば、私は非常に感謝しています.

0 投票する
2 に答える
2025 参照

.net - 動的に追加された ToolStripItems の ToolStripPanel オーバーフロー動作を変更する

新しい ToolStrips を動的に追加する Windows フォーム ToolStripPanel があります。各 ToolStrip には、動的に追加する ToolStripItems (主に ToolStripButtons) があります。

各 ToolStrip にすべての ToolStripItem が表示される限り、すべての ToolStrip を 1 行に収めたいと思います。新しい ToolStripItem を ToolStrip に追加するとオーバーフローが発生する場合、行の最後にある ToolStrip を新しい行にジャンプさせたいと思います。オーバーフロー ボタンを表示したいのは、ToolStrip に項目が多すぎてフォームの幅に収まらない場合だけです。

ユーザーが手動で ToolStrip を移動しない限り、これをデフォルトの動作にしたいと考えています。ユーザーが ToolStrip を移動した場合、既存のオーバーフロー (ドロップダウンの選択肢があるオーバーフロー ボタンなど) の動作が発生するようにします。ツールバーを自分で配置すれば、ユーザーはこのデフォルトの Winforms オーバーフロー動作で問題ないと思います。

ユーザーが物を再配置した後に新しい動的ツールバーが追加された場合、新しいツールバーを一番下の行の最後の ToolStrip の右側に追加したいと思います。このツールバーは、ユーザーが手動で再配置するまで、更新されたオーバーフロー動作 (収まらない場合は新しい行を使用するなど) を持つ必要があります。

私は大きな成功を収めずにいくつかの研究を行いました:

簡単な解決策がありませんか?

更新:まだ良い解決策を探しています。LayoutCompleted ルートが可能のようです。ただし、問題は、複数回呼び出されることです。ToolStripItem がオーバーフロー エリアにあり、その直後にメイン エリアにあると表示されることがあるため、オーバーフローにあるかどうかを 1 回だけ確認するのは安全ではないようです。

0 投票する
2 に答える
1057 参照

c# - C# ToolStripPanel 描画に関する質問

ToolStripPanel を埋め込まれた ToolStrips と同じ描画スタイルにして、1 つの連続したバーのように見せようとしています。Windows タスク バーと同じスタイルになるように、ToolStripProfessionalRenderer を使用して ToolStrips を作成しました。

ToolStripProfessionalRenderer から派生した新しい Renderer を作成することで、私はそれに近づきました。

これにより、正しい色でグラデーションの外観が作成されますが、完全には一致しません。グラデーションの方が色数が多いように見えるので、広がりが長く引き出されます。

ToolStrips の境界線 (このコードには表示されていません) を考慮しましたが、まだ完全に一致していません。

これを実現する方法を知っている人はいますか?

0 投票する
1 に答える
1717 参照

vb.net - ToolStripContainer パネルをロックして、1 行のツールストリップのみを許可する

ToolStrips を 1 つの行に残し、ユーザーがその行を再配置できるようにしたいが、追加の行を作成できないようにします。LocationChanged イベントで SetBounds を使用してみました。ユーザーが Y 位置を変更しようとすると、すぐに元に戻りました。ただし、これにより、マウスが常にその場所にジャンプして戻ったり、ToolStrips がランダムにジャンプしたりするなど、いくつかの視覚的なバグが作成されました (1 つをドラッグしている間、もう 1 つがバー上をランダムに飛び回る...)。

また、toolstripcontainer パネルの MaximumSize を設定しようとしましたが、とにかく (ツールストリップが非表示になっている) 新しい行を作成できました。

編集:数か月経ちましたが、まだ答えがありません...これは可能ですか?

0 投票する
2 に答える
2643 参照

.net - ToolStripPanelからToolStripのドッキングを解除する

箱から出して、エンドユーザーがToolStripアプリケーション内のを親からドッキング解除できるようにするための組み込みサポートはないようToolStripPanelです。Visual Studio IDEでもツールストリップをドッキング解除/ティアオフ/フロートできるため、明らかに可能ですが、とのデフォルトの動作では不可能ToolStripですToolStripPanel

それで、誰かアドバイスがありますか?エンドユーザーがを切り離しToolStripて、好きな場所に自由に浮かせることができるようにしたいと思います。

0 投票する
2 に答える
916 参照

c# - ToolStripPanel、ToolStrip、およびToolStripItemsでdisposeを呼び出す必要がありますか?

を追加し、続いていくつかのsとsToolStripPanelを追加するinコードを作成します。これらのそれぞれを手動で調べて削除したり、disposeを呼び出す必要がありますか?つまり、ボタンとセパレーターをループしてdisposeを呼び出し、からを削除して、を破棄し、最後にその親コン​​トロールからを削除して破棄しますか?ToolStripToolStripButtonToolStripSeparatorToolStripToolStripPanelToolStripToolStripPanel

アップデート

Control.Disposeのドキュメントを読むとDispose、親を呼び出すと子が破棄されるようです。明確ではないのは、sをコレクションに追加するのではなく、コレクションに追加するため、ToolStripItemsが適切な「子」であるかどうかです。ToolStrip.Controlsのドキュメントを見ると、このプロパティはこのクラスに関連していないことがわかります。ToolStripToolStrip.ControlsToolStrip.Items

ToolStripPanelあなたが呼ばないのと同じことですToolStripPanel.Controls.Add(toolstrip)が、むしろToolStripPanel.Join(toolstrip)

0 投票する
1 に答える
172 参照

c# - ToolStripPanel に追加されたときに ToolStrip がドラッグされない

以下のYouTubeのビデオをフォローしています

ToolStripPanel コントロールを使用して Mdi フォームを操作する

VB .NET にあり、C# で使用しようとしています。これが私のコードです:

エラーはありません。しかし、ToolStrip (変数 a) をドラッグしようとすると、ビデオのように動きません。何が問題なのか、それを修正する方法を教えてください。

0 投票する
1 に答える
968 参照

c# - ToolStripPanel Join メソッドがツールストリップをパネルに追加していない

ToolStripPanel.Join で非常に奇妙な問題が発生しました。Google と SO で検索して、何が間違っているのかについての手がかりを探していますが、わかりません。基本的に、ToolStripPanel.Join を使用すると、追加した最初の ToolStrip は ToolStripPanel にまったく表示されませんが、結合する他のすべての ToolStrip は表示されます。詳細に入る前に、私は C# と VS 2010 と .NET 4 を使用していて、いくつかのコンテキストのために、ToolStripPanel の内部にあるユーザー コントロールで ToolStripPanel を使用しようとしていると最初に言わせてください。これらのユーザー コントロールを他のフォームで再利用できるように作成したカスタム dll。

以前は ToolStripContainer を使用していましたが、ToolStripContainer のトップ パネルだけが本当に必要だったので、ToolStripPanel を使用するように切り替えることにしました。ToolStripContainer を使用する意味がわかりませんでした。ツールボックスに ToolStripPanel コントロールが見つからなかったので、自分で Designer.cs ファイルに追加することにしました。これが私がそれをした方法です:

次に、ユーザー コントロールのコンストラクターで、次のようにします。

ツール ストリップを作成してコードで toolstrippanel に追加しているため、ユーザー コントロールのデザイナーでどのように表示されるかわかりません。そのため、dll をビルドし、dll からのユーザー コントロールを使用する別のプロジェクトの別のフォームに移動します。フォームが開いたときにツールストリップはありません。それは単に表示されません。ただし、ここで奇妙なことがあります。パネルにツールストリップを 1 つだけ追加すると、2 つ目のツールストリップが表示されます。

上記のコードでは、最初に作成したツールストリップは表示されませんが、2 番目のツールストリップ (openSaveToolStrip2) は表示されます。ちなみに、両方のツールストリップに Join オーバーロード Join(toolStrip) を使用しただけでは、何も表示されません。また、tsPanel.Join(toolstrip3, 2) または tsPanel.Join(toolstrip4, 3) などの他の行にツールストリップを追加すると、ツールストリップが表示されます。

説明のつかない (少なくとも私にとっては) 理由で、追加した最初のツールストリップは表示されませんが、後続のすべてのツールストリップは表示されるようです。回避策として、ダミーのツールストリップを作成して追加し、実際のツールストリップをすべて追加しました。これはかなりハックな気がするので、なぜこれが起こっているのかを理解したいと思います。MSDNのドキュメントに従おうとしましたが、このようなバグが修正されていないとは想像できないため、まだ何かが欠けているに違いありません。

ここで何がうまくいかないのか誰か知っていますか?

0 投票する
0 に答える
118 参照

vb.net - VB.net: ToolStripPanel/ToolStripContentPanel を削除します

Visual Studio 2013 Community でプロジェクト VB.net プロジェクトに取り組んでいるときに、誤って ToolStripPanel/ToolStripContentPanel コントロールの組み合わせを挿入してしまいました。

残念ながら、今は削除できません。これを行う方法について誰かアドバイスできますか?きっと道はあるはずです。残念ながら、プロジェクトは保存されているため、元に戻すこともできません。