亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

c#創建浮動工具欄功能示例

2020-01-24 03:00:42
字體:
來源:轉載
供稿:網友

所謂的浮動工具欄,效果圖如下:

也就是說,可以將工具欄拖出其原先的??课恢?,而且可以將拖出來的工具欄再拖放回去。

實現的基本思路如下

1、拖動出來以后,需要創建一個大小合適的窗口,作為工具欄新的停靠容器,這個窗口可以這樣設置:

FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;

ShowIcon = false;

ShowInTaskbar = false;

TopMost = true;

2、浮動工具欄可以擴展自.Net Framework提供的ToolStrip,它被拖動都某個位置,松開鼠標左鍵時,會觸發EndDarg事件,在這個事件中,我們將其從原來的??咳萜髦幸瞥?,同時根據鼠標左鍵松開時,在鼠標所在位置上創建一個窗口,作為工具欄的新容器。

這個就是基本的思路了,下面是浮動工具欄FloatToolstrip 具體的實現代碼:

復制代碼 代碼如下:

代碼

Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;

namespace FloatToolStripDemo
{
    public partial class FloatToolstrip : ToolStrip
    {
        private ToolStripPanel tsPanel;

        public FloatToolstrip()
        {
            InitializeComponent();
            this.EndDrag += new EventHandler(MyToolStrip_EndDrag);
            this.SizeChanged += new EventHandler(MyToolStrip_SizeChanged);
        }

        private ToolStripFloatWindow floatForm;
        public ToolStripFloatWindow FloatForm
        {
            get { return floatForm; }
            set
            {
                floatForm = value;
                if (floatForm != null)
                {
                    floatForm.LocationChanged += new EventHandler(floatForm_LocationChanged);
                    floatForm.FormClosing += new FormClosingEventHandler(floatForm_FormClosing);
                }
            }
        }

        void floatForm_FormClosing(object sender, FormClosingEventArgs e)
        {
            e.Cancel = true;
        }

        private void floatForm_LocationChanged(object sender, EventArgs e)
        {
            //當floatwindws的位置移動到toolstrippanel中時,將this放置到 toolstripPanel上 
            if (this.floatForm == null)
            {
                return;
            }
            else
            {
                if (floatForm.HasCreated)
                {
                    Point currentPt = new Point(floatForm.Location.X, floatForm.Location.Y);
                    Point minPt = this.tsPanel.PointToScreen(tsPanel.Location);
                    Point maxPt;
                    if (this.tsPanel.Height <= 20)
                    {
                        maxPt = new Point(minPt.X + this.tsPanel.Width, minPt.Y + 20);

                    }
                    else
                    {
                        maxPt = new Point(minPt.X + this.tsPanel.Width, minPt.Y + this.tsPanel.Height);
                    }

                    if ((currentPt.X > minPt.X) && (currentPt.X < maxPt.X) && (currentPt.Y > minPt.Y - 25) && (currentPt.Y < maxPt.Y - 25))
                    {
                        this.floatForm.Controls.Remove(this);
                        this.tsPanel.SuspendLayout();
                        this.tsPanel.Controls.Add(this);
                        this.Location = this.tsPanel.PointToClient(currentPt);
                        this.tsPanel.ResumeLayout();
                        this.floatForm.Dispose();
                        this.floatForm = null;
                    }
                }
            }
        }

        public bool isFloating
        {
            get
            {
                return (floatForm != null);
            }
        }

        public ToolStripPanel ToolStripPanel
        {
            get
            {
                return this.tsPanel;
            }
            set
            {
                this.tsPanel = value;
            }
        }

        private void MyToolStrip_EndDrag(object sender, EventArgs e)
        {
            //判斷移除時
            if (this.tsPanel == null)
            {
                MessageBox.Show("請先設置ToolStripPanel屬性");
                return;
            }
            Point dockPoint = Cursor.Position;
            int openX, openY;
            openX = dockPoint.X;
            openY = dockPoint.Y;

            Point clientPt = this.tsPanel.Parent.PointToClient(dockPoint);
            if (clientPt.Y > tsPanel.Height)
            {
                ToolStripFloatWindow tsfw = new ToolStripFloatWindow();
                this.tsPanel.Controls.Remove(this);
                tsfw.Controls.Add(this);
                this.Left = 0;
                this.Top = 0;
                this.FloatForm = tsfw;
                Point newLoc = new Point(openX, openY);
                tsfw.Show();
                tsfw.Location = newLoc;
                tsfw.SetBounds(newLoc.X, newLoc.Y, this.ClientSize.Width, this.ClientSize.Height+25);
            }
        }

        private void MyToolStrip_SizeChanged(object sender, EventArgs e)
        {
            if (this.isFloating)
            {
                this.floatForm.Width = this.ClientSize.Width;
            }
        }
    }
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91成人天堂久久成人| 国产精品免费福利| 亚洲免费视频在线观看| 欧美成人一二三| 日韩精品视频观看| 欧美理论电影在线观看| 法国裸体一区二区| 欧美国产亚洲视频| 欧美亚洲视频在线看网址| 91精品综合视频| 精品国内自产拍在线观看| 中文字幕一区二区精品| 日本久久久久久久久久久| 日韩视频在线免费| 欧美国产第二页| 欧美午夜女人视频在线| 91黑丝在线观看| 亚洲国产欧美一区二区三区久久| 亚洲日韩中文字幕| 日韩欧美亚洲一二三区| 国产视频福利一区| 亚洲图片欧洲图片av| 国产精品久久久久久久久粉嫩av| 38少妇精品导航| 欧美日韩裸体免费视频| 在线一区二区日韩| 日韩av观看网址| 久久影院中文字幕| 久久久久99精品久久久久| 日韩中文在线不卡| 国产亚洲成精品久久| 九九九热精品免费视频观看网站| 91久久综合亚洲鲁鲁五月天| 亚洲毛片在线观看| 亚洲aa在线观看| 精品亚洲一区二区三区| 亚洲国产精品久久久久秋霞蜜臀| 欧美疯狂做受xxxx高潮| 疯狂做受xxxx欧美肥白少妇| 九九久久久久99精品| 亚洲xxxxx| 中文字幕国内精品| 久久九九亚洲综合| 久久久亚洲精品视频| 成人动漫网站在线观看| 日韩大陆欧美高清视频区| 欧美刺激性大交免费视频| 亚洲欧美日韩中文在线制服| 精品国产区一区二区三区在线观看| 亚洲网站视频福利| 欧美另类极品videosbestfree| 亚洲欧美福利视频| 在线日韩av观看| 亚洲最新视频在线| 国产一区二区三区精品久久久| 欧洲成人在线观看| 欧美孕妇性xx| 午夜免费久久久久| 国产精品永久免费| 日韩动漫免费观看电视剧高清| 亚洲欧美国产精品va在线观看| 欧美一级片在线播放| 国产精品成人在线| 亚洲国产日韩欧美在线图片| 在线观看日韩欧美| 亚洲免费视频在线观看| 日本国产高清不卡| www国产精品com| 午夜精品一区二区三区视频免费看| 欧美亚洲国产日韩2020| 国内自拍欧美激情| 91手机视频在线观看| 最近中文字幕日韩精品| 日本国产高清不卡| 亚洲网在线观看| 成人免费福利在线| 国产精品久久97| 精品人伦一区二区三区蜜桃网站| 日韩精品极品视频免费观看| 欧美日韩国产综合新一区| 中文综合在线观看| 亚洲天堂一区二区三区| 国内精品视频久久| 国产综合在线看| 国产精品一久久香蕉国产线看观看| 在线精品国产欧美| 久久精品91久久久久久再现| 日韩一区二区三区在线播放| 久久久日本电影| 中文字幕日韩在线视频| 国产精品视频1区| 一本一道久久a久久精品逆3p| 日韩免费电影在线观看| 欧美成人精品三级在线观看| 国产欧美精品xxxx另类| 免费97视频在线精品国自产拍| 91欧美日韩一区| 成人免费观看a| 欧美日韩亚洲视频一区| 国产在线观看精品| 欧洲精品久久久| 欧美成年人视频网站| 久久影视电视剧免费网站清宫辞电视| 国产婷婷成人久久av免费高清| 久久在线精品视频| 久久久久久噜噜噜久久久精品| 欧美在线视频一区二区| 中文字幕一精品亚洲无线一区| 中文字幕在线亚洲| 97在线观看视频| 欧美激情精品久久久久久大尺度| 91亚洲永久免费精品| 成人精品一区二区三区电影免费| 欧美性xxxxxxxxx| 欧美日韩国产限制| 992tv在线成人免费观看| 国产日韩综合一区二区性色av| 91欧美激情另类亚洲| 夜夜嗨av一区二区三区免费区| 蜜臀久久99精品久久久久久宅男| 日韩亚洲在线观看| 亚洲色图25p| 亚洲香蕉成人av网站在线观看| 亚洲欧美激情另类校园| 国产精品吊钟奶在线| 亚洲大胆人体在线| 欧美激情视频播放| 亚洲男女性事视频| 久久久久久久久久久久av| 亚洲第一网站男人都懂| 日韩av在线免费| 777午夜精品福利在线观看| 国产97在线|亚洲| 毛片精品免费在线观看| 久久伊人精品视频| 亚洲视频综合网| 日本在线观看天堂男亚洲| 亚洲激情免费观看| 55夜色66夜色国产精品视频| 国产成人亚洲综合91精品| 欧美日韩精品在线播放| 欧美黄色小视频| 91精品久久久久久久久久| 亚洲老头同性xxxxx| 国产日韩欧美在线观看| 亚洲精品女av网站| 中文字幕亚洲图片| 这里只有精品丝袜| 日韩高清电影好看的电视剧电影| 韩国三级日本三级少妇99| 色哟哟亚洲精品一区二区| 久久免费在线观看| 亚洲图片在区色| 亚洲成av人片在线观看香蕉| 青青精品视频播放| 欧美在线观看一区二区三区| 欧美日韩人人澡狠狠躁视频| 欧美日韩国产一区二区三区| 韩曰欧美视频免费观看| 国产一区二区在线免费视频| 欧美亚洲午夜视频在线观看| 日韩精品久久久久久福利| 91精品啪在线观看麻豆免费| 欧美成人激情视频免费观看|