飛艷小屋

          程序--人生--哲學(xué)___________________歡迎艷兒的加入

          BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
            52 Posts :: 175 Stories :: 107 Comments :: 0 Trackbacks
           

          (一).功能描述

             涉及到DragEnter DragDrop DragLeave DragOver QueryContinueDrag事件用法的一個例子

          (二).代碼

          using System;
          using System.Drawing;
          using System.Collections;
          using System.ComponentModel;
          using System.Windows.Forms;
          using System.Data;

          namespace 拖放數(shù)據(jù)操作_按鍵事件_
          {
           /// <summary>
           /// Form1 的摘要說明。
           /// </summary>
           public class Form1 : System.Windows.Forms.Form
           {
            private System.Windows.Forms.Button button1;
            private System.Windows.Forms.TextBox textBox1;
            /// <summary>
            /// 必需的設(shè)計器變量。
            /// </summary>
            private System.ComponentModel.Container components = null;

            public Form1()
            {
             //
             // Windows 窗體設(shè)計器支持所必需的
             //
             InitializeComponent();

             //
             // TODO: 在 InitializeComponent 調(diào)用后添加任何構(gòu)造函數(shù)代碼
             //
            }

            /// <summary>
            /// 清理所有正在使用的資源。
            /// </summary>
            protected override void Dispose( bool disposing )
            {
             if( disposing )
             {
              if (components != null)
              {
               components.Dispose();
              }
             }
             base.Dispose( disposing );
            }

            #region Windows 窗體設(shè)計器生成的代碼
            /// <summary>
            /// 設(shè)計器支持所需的方法 - 不要使用代碼編輯器修改
            /// 此方法的內(nèi)容。
            /// </summary>
            private void InitializeComponent()
            {
             this.button1 = new System.Windows.Forms.Button();
             this.textBox1 = new System.Windows.Forms.TextBox();
             this.SuspendLayout();
             //
             // button1
             //
             this.button1.Location = new System.Drawing.Point(112, 72);
             this.button1.Name = "button1";
             this.button1.TabIndex = 0;
             this.button1.Text = "button1";
             this.button1.QueryContinueDrag += new System.Windows.Forms.QueryContinueDragEventHandler(this.button1_QueryContinueDrag);
             this.button1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.button1_MouseDown);
             //
             // textBox1
             //
             this.textBox1.AccessibleDescription = "aaaaa";
             this.textBox1.AccessibleName = "bbbbbb";
             this.textBox1.AllowDrop = true;
             this.textBox1.Location = new System.Drawing.Point(64, 160);
             this.textBox1.Multiline = true;
             this.textBox1.Name = "textBox1";
             this.textBox1.Size = new System.Drawing.Size(168, 48);
             this.textBox1.TabIndex = 1;
             this.textBox1.Text = "";
             this.textBox1.DragOver += new System.Windows.Forms.DragEventHandler(this.textBox1_DragOver);
             this.textBox1.DragDrop += new System.Windows.Forms.DragEventHandler(this.textBox1_DragDrop);
             this.textBox1.DragEnter += new System.Windows.Forms.DragEventHandler(this.textBox1_DragEnter);
             this.textBox1.DragLeave += new System.EventHandler(this.textBox1_DragLeave);
             //
             // Form1
             //
             this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
             this.ClientSize = new System.Drawing.Size(292, 266);
             this.Controls.Add(this.textBox1);
             this.Controls.Add(this.button1);
             this.Name = "Form1";
             this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
             this.Text = "Form1";
             this.ResumeLayout(false);

            }
            #endregion

            /// <summary>
            /// 應(yīng)用程序的主入口點(diǎn)。
            /// </summary>
            [STAThread]
            static void Main()
            {
             Application.Run(new Form1());
            }

            private void button1_QueryContinueDrag(object sender, System.Windows.Forms.QueryContinueDragEventArgs e)
            {
             if(e.EscapePressed)
              e.Action=DragAction.Cancel;
            }

            private void button1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
            {
             button1.DoDragDrop(button1.Text,DragDropEffects.Copy|DragDropEffects.Move);
            }

            private void textBox1_DragEnter(object sender, System.Windows.Forms.DragEventArgs e)
            {
             if(e.Data.GetDataPresent(DataFormats.Text))
              e.Effect=DragDropEffects.Copy;
             else
              e.Effect=DragDropEffects.None;
            }

            private void textBox1_DragDrop(object sender, System.Windows.Forms.DragEventArgs e)
            {
             //使用KeyState屬性
             if((e.KeyState&(1<<3))!=0)
             {
              if((e.AllowedEffect&DragDropEffects.Copy)!=0)
              {
               e.Effect=DragDropEffects.Copy;
               textBox1.Text=e.Data.GetData(DataFormats.Text).ToString();
              }
             }
             else
             {
              e.Effect=DragDropEffects.Move;
              textBox1.Text=e.Data.GetData(DataFormats.Text).ToString();
             }
            }

            private void textBox1_DragLeave(object sender, System.EventArgs e)
            {
             textBox1.Text="執(zhí)行 DragLeave";
            }

            private void textBox1_DragOver(object sender, System.Windows.Forms.DragEventArgs e)
            {
             textBox1.Text="執(zhí)行 DragOver";
            }
           }
          }
           

          posted on 2005-12-08 14:25 天外飛仙 閱讀(336) 評論(0)  編輯  收藏 所屬分類: .net
          主站蜘蛛池模板: 旅游| 瓮安县| 交口县| 耒阳市| 崇阳县| 雷山县| 延庆县| 芦溪县| 合川市| 浦县| 调兵山市| 广东省| 宁晋县| 洛扎县| 江口县| 永靖县| 施秉县| 乐业县| 淄博市| 电白县| 井冈山市| 青神县| 玉林市| 富阳市| 浑源县| 洛浦县| 松滋市| 突泉县| 宣城市| 璧山县| 昌邑市| 黄陵县| 阿坝县| 深水埗区| 沂南县| 叶城县| 龙井市| 武定县| 上栗县| 兰考县| 兴义市|