0

ここに画像の説明を入力してください

こんにちは、

上記は私が書いているプログラムです。右側のパネルには、基本的に2つのカスタムコントロール(青い長方形の領域)があり、このwinformプログラムが読み込まれるときに、それらをコントロールとして背景パネルコントロールに追加しました。

MSペイントを使用して、マウスがこのコントロールの領域に入ったときに表示したいポップアップバルーンを描画しました。私は次のことをしたい:

   1.  If mouse enter the control area, the yellow area balloon pop up and populate with the information of that specific control
   2.  If mouse move out of the control area, the pop up balloon disappear.

これはWinformアプリケーションで実行できますか?周りを見回してTooltip授業について知りましたが、研究するどころか、自分のやりたいことができるかどうかわかりません。

私は間違っているかもしれませんが、周りをグーグルで回ると、ツールチップがスタイルの点でほとんど提供していないという印象を受けました。理想的には、このポップアップバルーンを、画像やフォントなどを自由に配置できる境界のないポップアップウィンドウのように作成したいと思います。また、ボタンまたは特定のフィールドにカーソルを合わせるとツールチップが機能しますが、コントロール領域全体が必要です。

これはできますか?回避策がある場合は、回避策を教えていただければ幸いです。

4

3 に答える 3

1

すでにカスタムユーザーコントロールを実装しているので、もう一度試してみてください。そのスタイルと色のコントロールを作成し、テキストに基づいてサイズを変更します。既存のユーザーコントロールオブジェクトから情報(表示するテキストなど)をフィードできます。マウスのEnter/Leaveコードを最初のユーザーコントロールに常駐させることもできます。

角が丸い長方形を作成する方法がわからない場合は、グラフィックスオブジェクト(画面上でビットマップに変換されます)を使用してその場で作成するか、GIMPでの外観に合わせて作成することができます(またはフォトショップをお持ちの場合)次に、その画像をユーザーコントロールの背景として使用します。デフォルトの背景を透明にします(丸い角の上のボイドが灰色にならないようにします)。プリロードされた画像を作成する場合は、Y方向とX方向にのみ均等に拡大縮小できることに注意する必要があります。スケーリングが等しくないと、歪んで見えるようになります。

于 2012-10-30T19:21:52.277 に答える
1

コメントを書きましたが、完全な答えに拡張すると思います。これは、最大限のカスタマイズ性を実現するために、ツールチップではない新しいコントロールが必要であることを前提としています。私は最近、これに似たようなことをして、クリックすると消える非モーダル情報ポップアップとして機能しました。

カスタムポップアップフォームの作成

必要なのは、基本的にフォーム上に表示されるフローティングポップアップです。つまり、実際には他のフォームに埋め込まれないためForm、ではなく新しいオブジェクトを定義する必要があります。UserControl

Mouse_Enter入力する情報を入力できる複数行の編集不可能なテキストボックスを指定してから、イベントでフォームの新しいインスタンスを呼び出すだけです。で閉じますMouse_Leave

スタイルの調整

ウィンドウだけでなく、実際にポップアップのように機能させるには、少し試してみる必要があります。非モーダルポップアップに設定し、境界線を削除することをお勧めします。内容に合わせて自動的にサイズを変更する関数を作成できます。ユーザーが手動でサイズを変更する必要はないと思います。

CreateParams調べるべき他のいくつかのことは、基本的なFormオブジェクトに付属するプロパティをオーバーライドすることです。フォームをモーダルにすることなく、強制DropShadowsしてTopMostフォームを作成できます。常にtrueを返すようにオーバーライドShowWithoutActivationすると、フォームがポップアップしたときにフォーカスを奪うのを防ぐことができます。

モックアップのように丸みを帯びたエッジを引き抜くことができるかどうかはわかりません。おそらく、OnPaint()関数のウィザードリィでそれをやってのけることができますが、私はそれを行う方法をあなたに教えることができませんでした。


いじくり回すのは少し面倒かもしれませんが、それからいくつかの優れた機能と外観を得ることができます。ToolTipクラスで問題なく実行できると思われる場合は、それを選択してください。通知が必要な場所に届くまでに約1週間かかりました(ただし、おそらく心配する必要のない機能をいくつか追加しました)。

関連する検索で検索するいくつかのキーワードはとToast NotificationですNon-Modal Popup。これはいくつかの用途かもしれません:http:
//www.codeproject.com/Articles/442983/Android-Style-Toast-Notification-for-NET

于 2012-10-30T19:30:23.730 に答える
0

コントロールでMouse_Enterイベントを使用できますか?

于 2012-10-30T19:19:03.497 に答える