C#フォームの半透明性について、コントロールが不透明なソリューション

1002 ワード

フォームのこの問題について、私も以前とても困っていて、今問題が解決したばかりで、みんなと分かち合いますか?
私の考えは2つのフォームを重ねて、例えばレイヤー効果です.くだらないことを言わないでコードを貼ってください.
Form 1のloadイベントでは、Form 2の具体的なコードをshowします.コントロールはForm 2に追加すればいいです.
Form2 form2 = null;
        private void Form1_Load(object sender, EventArgs e)
        {
            form2 = new Form2();
            form2.FormBorderStyle = FormBorderStyle.None;
            form2.TopMost = true;
            form2.Size = this.Size;
            form2.Show();
            this.LocationChanged += new EventHandler(Form1_LocationChanged);
        }

        void Form1_LocationChanged(object sender, EventArgs e)
        {
            try { form2.Location = this.Location; }
            catch { }
        }

form 2プロパティの設定:
TransparencyKey = Color.AliceBlue;
this.BackColor = Color.AliceBlue;

このAliceBlueの色は自分で変えられます
その後、効果はありますが、タスクバーには2つのフォームが実行されていることが明らかになります.
サブフォームに追加できます
this.ShowInTaskbar = false;
完璧解决へへへへへ;