添付の画像ではっきりしています。写真のリストボックスは、自動補完のように機能し、入力中にユーザーに提案を表示します。問題は、このリストボックスの下部が他のコントロールの下にあり、このリストボックスの垂直スクロールバーの下向き矢印が見えないことです。どのように他のコントロールの上にそれを保持することができますか?他のコントロールの上にリストボックスを表示する
答えて
ListBoxの親が正しくありません。あなたはスプリッターパネルを親として望んでいません。それはそれをクリップします。あなたはそれをデザイナーに簡単に与えることはできません。 View +(他のWindows)+ドキュメントのアウトラインを使用します。 ListBoxを分割パネルからフォームにドラッグします。
あなたの写真が表示されないので、私はここで推測を作ってるんだが、あなたはListBox.BringToFront()
またはListBox.SetChildIndex()
のようなものを使用することができますか?私は
Bring Winforms control to front
私はあなたがが、問題のリストボックスへの直接アクセスを持っていない場合、それはあなたに多くの助けにはなりません推測...
になります。これは一種の、これと同じ質問ですしかし、あなたのListBox
コントロールをフォームに追加するのは間違いです。私はあなたがそれが表示されている場所内でそれを追加していると推測しているので、重複するコントロールはコンテナの他の部分の内側にあります。他のすべてのコントロールのコントロールを表示する場合、そのコントロールはコンテナエリア全体に渡る必要があります。したがって、あなたの「核型エントリー」コンテナの子コントロールの代わりに、3つのフォームセクションすべての親コンテナの子である必要があります。
リストボックスを別のフォームに配置し、補完リストが必要なときはいつでもフォームを起動/表示できます。これにより、ListBoxが最上位かどうか心配する必要がなくなります。
この方法のキャッチは、オートコンプリートフォームをコード化して、メインフォームからフォーカスを奪ってはならないことです。
アクティブ化せずにフォームを表示する方法(フォーカスを奪う方法)が不思議に思えるような場合に役立ちます。
private const int SW_SHOWNOACTIVATE = 4;
private const int HWND_TOPMOST = -1;
private const uint SWP_NOACTIVATE = 0x0010;
[DllImport("user32.dll", EntryPoint = "SetWindowPos")]
static extern bool SetWindowPos(
int hWnd, // window handle
int hWndInsertAfter, // placement-order handle
int X, // horizontal position
int Y, // vertical position
int cx, // width
int cy, // height
uint uFlags); // window positioning flags
[DllImport("user32.dll")]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
static void ShowInactiveTopmost(Form frm)
{
ShowWindow(frm.Handle, SW_SHOWNOACTIVATE);
SetWindowPos(frm.Handle.ToInt32(), HWND_TOPMOST,
frm.Left, frm.Top, frm.Width, frm.Height,
SWP_NOACTIVATE);
}
ShowWithoutActivation
プロパティをオーバーライドすることもできます。
protected override bool ShowWithoutActivation
{
get { return true; }
}
注:両方のコードスニペットはShow a Form without stealing focus?から来ています。
- 1. WP7コントロールを他のコントロールの上に表示
- 2. 他のコントロールのGotfocusに基づいてコントロールのテキストを表示
- 3. 他のコントロールよりも上に表示されるSilverlightのコンテンツをポップアップ
- 4. 他のフォームのコントロールを表示
- 5. リストオブジェクトをクリックし、別のリストボックスに他の複数のリストオブジェクトを表示するC#
- 6. 他のコントロールでUserControlの子コントロールを非表示
- 7. Mouserが上のときに "ポップアップウィンドウ"を表示リストボックスの項目
- 8. 他のページのフィールド値を表示するSharePoint 2007コントロール/ webpart
- 9. 表示する更新進行状況コントロールをModalPopExtenderの上に表示
- 10. JQueryモーダルがIE6のリストボックスの上に表示されない
- 11. ホバー上にGoogleマップのコントロールを表示する
- 12. WPFの他のコントロールの上にコントロールを浮動させよう
- 13. ASP.NET Ajax - 他のコントロールの背後にAutocompleteextenderコントロールが表示されます
- 14. リストボックスにアイテムを表示する方法
- 15. マウスが子コントロールの上にあるときのコントロールの強調表示
- 16. 他のテキスト入力の上にテキストエリアを表示します
- 17. matplotlib:凡例を他のサブプロットの上に表示します。
- 18. 上部WinformコントロールのWPFコントロールが表示されません
- 19. 無効なコントロールの上にツールチップを表示
- 20. VLCとWPF:表示パネルは画面上の他のすべてのコントロールを食い止めますか?
- 21. リストボックスを表示する高さ
- 22. リストボックスをリアルタイムでTextBoxで表示する
- 23. SilverlightでHTMLコントロールの上にある編集ボックスを表示する
- 24. wp7のリストボックスにスクロールバーを常に表示する方法
- 25. 他のウィンドウの上にモーダルダイアログが表示されない
- 26. COMポートからリストボックスにデータを表示
- 27. VBでリストボックスにデータを表示
- 28. リストボックスからメッセージボックスに情報を表示
- 29. winformリストボックスの列を非表示にする方法は?
- 30. 親コントロールの境界内にユーザーコントロールのコントロールを表示します
'ListBox'は何でもホストされていますか?すなわち、ダイアログまたはユーザコントロール? –
はい、Splitter、SpliContainerにあります – Bohn