效果图。

--------------------------------------------------------------------------------------------

最先想到的方法是Form的TransparentKey属性。只需把Flaxh ocx拉到窗体,
ocx控件背景颜色、窗休背景颜色和TransparentKey都设置相同的颜色值就可以实现透明了。
什么?实现不了?
嘿嘿,把系统颜色改成16位色吧!

于是找到了另一种方法........

完美方案:
在Form上放个WebBrowser,在WebBrowser中显示Flash,把WebBrowser Docuemt背景(默认是白色)和TransparentKey一致,
Form的FormBorderStyle高为none。
搞定,效果如上图。

贴上代码。

Form2.Designer.cs
  1using System.Windows.Forms;
  2namespace abs.Agent
  3{
  4    partial class Form2
  5    {
  6        /** <summary>
  7        /// 必需的设计器变量。
  8        /// </summary>
  9        private System.ComponentModel.IContainer components = null;
 10
 11        /** <summary>
 12        /// 清理所有正在使用的资源。
 13        /// </summary>
 14        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
 15        protected override void Dispose(bool disposing)
 16        {
 17            if (disposing && (components != null))
 18            {
 19                components.Dispose();
 20            }
 21            base.Dispose(disposing);
 22        }
 23
 24        Windows 窗体设计器生成的代码#region Windows 窗体设计器生成的代码
 25
 26        /** <summary>
 27        /// 设计器支持所需的方法 - 不要
 28        /// 使用代码编辑器修改此方法的内容。
 29        /// </summary>
 30        private void InitializeComponent()
 31        {
 32            this.webBrowser1 = new System.Windows.Forms.WebBrowser();
 33            this.SuspendLayout();
 34            // 
 35            // webBrowser1
 36            // 
 37            this.webBrowser1.Dock = System.Windows.Forms.DockStyle.Fill;
 38            this.webBrowser1.Location = new System.Drawing.Point(0, 0);
 39            this.webBrowser1.MinimumSize = new System.Drawing.Size(20, 20);
 40            this.webBrowser1.Name = "webBrowser1";
 41            this.webBrowser1.ScrollBarsEnabled = false;
 42            this.webBrowser1.Size = new System.Drawing.Size(505, 302);
 43            this.webBrowser1.TabIndex = 0;
 44            // 
 45            // Form2
 46            // 
 47            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
 48            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
 49            this.ClientSize = new System.Drawing.Size(505, 302);
 50            this.Controls.Add(this.webBrowser1);
 51            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
 52            this.Name = "Form2";
 53            this.Text = "Form2";
 54            this.TopMost = true;
 55            this.TransparencyKey = System.Drawing.Color.White;
 56            this.Load += new System.EventHandler(this.Form2_Load);
 57            this.ResumeLayout(false);
 58
 59        }
 60
 61        #endregion
 62
 63        private  WebBrowser webBrowser1;
 64    }
 65}

Form2.cs

1using System;
  2using System.Collections.Generic;
  3using System.ComponentModel;
  4using System.Data;
  5using System.Drawing;
  6using System.Text;
  7using System.Windows.Forms;
  8
  9namespace abs.Agent
 10{
 11    public partial class Form2 : Form
 12    {
 13        public Form2()
 14        {
 15            InitializeComponent();
 16        }
 17
 18        private void Form2_Load(object sender, EventArgs e)
 19        {
 20            webBrowser1.Navigate("about:blank");
 21            while (webBrowser1.IsBusy)
 22            {
 23                Application.DoEvents();
 24            }
 25            string file = @"file:///C|/1020110241.swf";
 26            webBrowser1.Document.Write(string.Format("<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" width=\"222\" height=\"186\"> <param name=\"wmode\" value=\"transparent\"><param name=\"movie\" value=\"{0}\"> <param name=\"quality\" value=\"high\"></object>",file));
 27        }
 28    }
 29}