首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C#中怎么实现数据拖动?(拖动图片,到TextBox,并显示)

2012-09-10 
C#中如何实现数据拖动?(拖动图片,到TextBox,并显示)代码: using Systemusing System.Collections.Generic

C#中如何实现数据拖动?(拖动图片,到TextBox,并显示)

C#中怎么实现数据拖动?(拖动图片,到TextBox,并显示)

代码:

 

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.IO;

namespace TestKeyPress{    public partial class Form2 : Form    {        public Form2()        {            InitializeComponent();        }

            private void textBox1_DragEnter(object sender, DragEventArgs e)        {            e.Effect = DragDropEffects.Copy;        }

        private void textBox1_DragDrop(object sender, DragEventArgs e)        {         //DataFormats.FileDrop确定你拖动过去的是文件回或者文件夹            if (e.Data.GetDataPresent(DataFormats.FileDrop))            {                string realpath = ((System.Array)e.Data.GetData(DataFormats.FileDrop)).GetValue(0).ToString();                //从拖动数据里得到路径                //MessageBox.Show(realpath);测试路径                string p = Path.GetExtension(realpath);                //MessageBox.Show(p);测试路径                if (p == ".jpg")                {                    //StreamReader sr = new StreamReader(realpath);读取方式,放弃使用                    Image im = Image.FromFile(realpath);                    int h = im.Height;                    int w = im.Width;                    this.pictureBox1.Height = h;                    this.pictureBox1.Width = w;                    this.pictureBox1.BackgroundImageLayout = ImageLayout.Stretch;                    this.pictureBox1.BackgroundImage = im;                    //将读取到的图片放到picturebox里                    //this.pictureBox1.Location = new Point(130 - pictureBox1.Width, 85 - pictureBox1.Height);                    Point pnl = new Point(this.panel1.Width / 2, this.panel1.Height / 2);                    Point pic = new Point();                    pic.X = pnl.X - pictureBox1.Width / 2;                    pic.Y = pnl.Y - pictureBox1.Height / 2;                    this.pictureBox1.Location = pic;                    //上面的代码是将图片的中心和panel的中心对齐                    //this.pictureBox1.Location = new Point(85 ,76);                }            }            else            {                MessageBox.Show("please select jpg");            }            //MessageBox.Show(e.Data.GetType().ToString());        }        //放大功能        private void button1_Click(object sender, EventArgs e)        {            Image im = this.pictureBox1.BackgroundImage;            //im.M            pictureBox1.Height = (int)(pictureBox1.Height * 1.2);            pictureBox1.Width = (int)(pictureBox1.Width * 1.2);            Point pnl = new Point(this.panel1.Width / 2, this.panel1.Height / 2);            Point pic = new Point();            pic.X = pnl.X - pictureBox1.Width / 2;            pic.Y = pnl.Y - pictureBox1.Height / 2;            this.pictureBox1.Location = pic;        }        //缩小功能        private void button2_Click(object sender, EventArgs e)        {            Image im = this.pictureBox1.BackgroundImage;            //im.M            pictureBox1.Height = (int)(pictureBox1.Height * 0.85);            pictureBox1.Width = (int)(pictureBox1.Width * 0.85);            Point pnl = new Point(this.panel1.Width / 2, this.panel1.Height / 2);            Point pic = new Point();            pic.X = pnl.X - pictureBox1.Width / 2;            pic.Y = pnl.Y - pictureBox1.Height / 2;            this.pictureBox1.Location = pic;        }        private Point start;        private Point end;        //下面的函数实现,图片在panel里可以拖动        private void panel1_MouseDown(object sender, MouseEventArgs e)        {            if (e.Button == MouseButtons.Left)            {                start = new Point(e.X, e.Y);                end = start;            }        }                private void panel1_MouseUp(object sender, MouseEventArgs e)        {            end = new Point(e.X, e.Y);            int picx = this.pictureBox1.Location.X;            int picy = this.pictureBox1.Location.Y;            picx += end.X - start.X;            picy += end.Y - start.Y;            this.pictureBox1.Location = new Point(picx, picy);        }    }}


数据拖动,主要是在接受数据的地方添加DragEnter和DragDrop事件,必须将接受数据的地方设置为AllowDrop=true,如果在一个窗体内拖动,选择数据的地方也要设置AllowDrop=true,

C#中怎么实现数据拖动?(拖动图片,到TextBox,并显示)C#中怎么实现数据拖动?(拖动图片,到TextBox,并显示)

热点排行