ポップアップウインドウを表示する

下記のようなポップアップ画面を表示する手順をまとめる。ポップアップ画面は「閉じる」ボタンや「×」をクリックしなくても、画面以外の場所をクリックすると勝手に閉じてくれるというウインドウのこと。ツールチップスの上位版みたいな。
ポップアップ画面を表示するには、ToolStripControlHostとToolStripDropDownの2つのクラスを使う。名前からしてツールチップに関係ありそう。

まず、フォームを作る。

画面のデザインは適当。

次にポップアップ画面に表示する内容を、別のフォームに配置する。前のフォームに置くと邪魔なので別のフォームに置く。

オレンジ色のパネルがその内容。これを表示するコードを、最初のフォームのボタンイベントに記述する。

        private void button1_Click(object sender, EventArgs e)
        {
            Form2 fm = new Form2();
           
            var ho = new ToolStripControlHost(fm.panel1);
            var st = new ToolStripDropDown();
            st.Items.Add(ho);
            st.BackColor = Color.Bisque;
            st.Show(Cursor.Position);
        }

オレンジ色のパネルは、フォームオブジェクトを作ってゲットしている。ただ、デフォルトではprivateなので、下記のように変更しておく。


細かい話だが、ポップアップウインドウの外枠が少し見えて、しかも色が違って目立つので、背景色を設定してオレンジ色にしている。汎用的にするなら、ここが面倒になるかもしれない。

これで、最初の図のようにポップアップ画面が表示される。
いろいろ応用できる技だと思う。

コメント

このブログの人気の投稿

varchar をデータ型 numeric に変換中に、算術オーバーフロー エラーが発生しました。