资源简介

FlexCell .net control控件本身对拖拽操作支持不好,特别是对当前grid的cell内空拖至当前grid的另外的cell中,本例程通过其它的方法实现。

资源截图

代码片段和文件信息

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

namespace flexcellDrag
{
    public partial class Form2 : Form
    {
        private int currRow currCol;
        public Form2()
        {
            InitializeComponent();
        }

        private void Form2_Load(object sender EventArgs e)
        {
            grid1.Rows = 10;
            grid1.Cols = 10;
            for (int i = 0; i < 10; i++)
            {

                grid1.Column(i).Locked = true;
                for (int j = 0; j < 10; j++)
                {
                    grid1.Cell(i j).Text = string.Format(“{0}-{1}“ i j);
                }
            }
        }

        bool isBegDrag = false;
        int begCol begRow;
        private void grid1_MouseDown(object Sender MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                isBegDrag = true;
                begCol = currCol;
                begRow = currRow;
                grid1.Cursor = Cursors.Hand;
            }
            this.Text = string.Format(“begRow:{0}begCol:{1}currRow:{2}currCol:{3}“ begRow begCol currRow currCol);
        }

        private void grid1_RowColChange(object Sender FlexCell.Grid.RowColChangeEventArgs e)
        {
            currCol = e.Col;
            currRow = e.Row;
        }


        private void GetCurrRowCol(MouseEventArgs e)
        {
            double tX tY tX1 tY1;
            tX = 0;// this.Left + grid1.Left;
            tY = 0;// this.Top + grid1.Top;
            for (int i = 0; i < grid1.Rows; i++)
            {
                tY1 = tY;
                tY += grid1.Row(i).Height;
                tX = 0;// this.Left + grid1.Left;
                for (int j = 0; j < grid1.Cols; j++)
                {
                    tX1 = tX;
                    tX += grid1.Column(j).Width;
                    if ((e.X >= tX1 && e.X <= tX) && (e.Y >= tY1 && e.Y <= tY))
                    {
                        currRow = i;
                        currCol = j;
                        break;
                    }
                }
            }
        }
        private void grid1_MouseUp(object Sender MouseEventArgs e)
        {
            //
            GetCurrRowCol(e);
            //
            grid1.Cursor = Cursors.Default;
            this.Text = string.Format(“begRow:{0}begCol:{1}currRow:{2}currCol:{3}“ begRow begCol currRow currCol);

            if (isBegDrag)
            {
                if (currRow != begRow || currCol != begCol)
                {
                    //交换数据
                    string tmpStr = grid1.Cell(begRow begCol).Text;
                    grid1.Cell(begRow begCol).Text = grid1.Cell(currRow currCol).Text;
                    grid1.Cell(currRow currCol).Tex

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      15872  2016-06-25 10:33  flexcellDrag\bin\Debug\flexcellDrag.exe

     文件      36352  2016-06-25 10:33  flexcellDrag\bin\Debug\flexcellDrag.pdb

     文件      22656  2016-06-25 10:33  flexcellDrag\bin\Debug\flexcellDrag.vshost.exe

     文件        490  2015-10-30 13:45  flexcellDrag\bin\Debug\flexcellDrag.vshost.exe.manifest

     文件       4226  2016-06-25 09:47  flexcellDrag\flexcellDrag.csproj

     文件       5809  2016-06-25 10:33  flexcellDrag\Form2.cs

     文件       4115  2016-06-25 10:14  flexcellDrag\Form2.Designer.cs

     文件       5817  2016-06-25 10:14  flexcellDrag\Form2.resx

     文件       8460  2016-06-23 17:20  flexcellDrag\obj\Debug\DesignTimeResolveAssemblyReferences.cache

     文件       6896  2016-06-25 10:33  flexcellDrag\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache

     文件        677  2016-06-25 10:33  flexcellDrag\obj\Debug\flexcellDrag.csproj.FileListAbsolute.txt

     文件       1035  2016-06-25 10:14  flexcellDrag\obj\Debug\flexcellDrag.csproj.GenerateResource.Cache

     文件       9049  2016-06-23 17:21  flexcellDrag\obj\Debug\flexcellDrag.csprojResolveAssemblyReference.cache

     文件      15872  2016-06-25 10:33  flexcellDrag\obj\Debug\flexcellDrag.exe

     文件        180  2016-06-25 09:47  flexcellDrag\obj\Debug\flexcellDrag.Form1.resources

     文件        180  2016-06-25 10:14  flexcellDrag\obj\Debug\flexcellDrag.Form2.resources

     文件      36352  2016-06-25 10:33  flexcellDrag\obj\Debug\flexcellDrag.pdb

     文件        180  2016-06-25 09:47  flexcellDrag\obj\Debug\flexcellDrag.Properties.Resources.resources

     文件        493  2016-06-25 09:40  flexcellDrag\Program.cs

     文件       1348  2016-06-23 17:20  flexcellDrag\Properties\AssemblyInfo.cs

     文件       2876  2016-06-23 17:20  flexcellDrag\Properties\Resources.Designer.cs

     文件       5612  2016-06-23 17:20  flexcellDrag\Properties\Resources.resx

     文件       1099  2016-06-23 17:20  flexcellDrag\Properties\Settings.Designer.cs

     文件        249  2016-06-23 17:20  flexcellDrag\Properties\Settings.settings

     文件       1005  2016-06-23 17:20  flexcellDrag.sln

     目录          0  2016-06-23 17:20  flexcellDrag\obj\Debug\TempPE

     目录          0  2016-06-23 17:21  flexcellDrag\bin\Debug

     目录          0  2016-06-25 10:33  flexcellDrag\bin\Release

     目录          0  2016-06-25 10:33  flexcellDrag\obj\Debug

     目录          0  2016-06-25 10:33  flexcellDrag\bin

............此处省略6个文件信息

评论

共有 条评论