C#版MultiSelected DataGrid_.NET教程_编程技术_ASP.NET_青云站长教程网
欢迎来到站长教程网!
  • 秒到短信接口 免费试用
  • 微信支付宝接口 秒结算
  • 中文网站排名|申请加入
  • 搜索引擎全站查询
  • 查询移动网站权重数据
  • 海外主机 台湾公司直销
  • ASP.NET

    当前位置:主页 > 网络编程 > ASP.NET >

    C#版MultiSelected DataGrid_.NET教程_编程技术

    时间:2019-09-11|栏目:ASP.NET|点击:
  • datagrid|select using System;
    using System.Drawing;
    using System.Collections;
    using System.Windows.Forms;
    namespace cSharpDataGrid
    {
     
     public class MyDataGrid : System.Windows.Forms.DataGrid
     {
      private ArrayList m=new ArrayList();
      Array MultiSelectedIndex
      {
       get
       {
        return this.m.ToArray(typeof (int));
       }
      }
       
      protected override void OnMouseDown(System.Windows.Forms.MouseEventArgs e)
      {
       Console.WriteLine("Datagrid has hit");
       Point _posDg = new Point(e.X,e.Y);
       System.Windows.Forms.DataGrid.HitTestInfo _hitDg =base.HitTest(_posDg);
       if (HitDataGrid(_hitDg))
       {
        base.OnMouseDown(e);
       }
       base.OnMouseDown (e);
      }
      private bool HitDataGrid(DataGrid.HitTestInfo Hit)
      {
       try
       {
        switch (MyDataGrid.ModifierKeys)
        {
         case Keys.Control:
          if (Hit.Row>-1)
          {
           if (m.IndexOf(Hit.Row)>-1)
           {
            m.Remove(Hit.Row);
            this.UnSelect(Hit.Row);
           }
           else
           {
            m.Add(Hit.Row);
            this.Select(Hit.Row);
           }
          }
          return false;
         case Keys.Shift:
          if (Hit.Row>-1)
          {
           foreach (int intIndex in m)              
           {
            this.UnSelect(intIndex);
           }
           m.Clear();
           int _count;
           int _intStep;
           if (Hit.Row>this.CurrentRowIndex)
           {
            _intStep=1;
           }
           else
           {
            _intStep=-1;
           }
           for (_count=this.CurrentRowIndex ;_count==Hit.Row;_count+=_intStep)
           {
            m.Add(_count);
            this.Select(_count);
           }
          }
          return false;
         default:
          foreach (int _intIndex in m)
          {
           this.UnSelect(_intIndex);
          }
          m.Clear();
          if (Hit.Type==DataGrid.HitTestType.RowHeader)
          {
           m.Add(Hit.Row);
          }
          return true;
        }
       }
       catch(System.Exception ex)
       {
        throw ex;
       } 
      }
     }
    }



    上一篇:简单的多人聊天(C#.Socket)._.NET教程_编程技术

    栏    目:ASP.NET

    下一篇:用C#读取sina天气预报到wap页面(一)_.NET教程_编程技术

    本文标题:C#版MultiSelected DataGrid_.NET教程_编程技术

    本文地址:http://www.jh-floor.com/wangluobiancheng/ASP_NET/50007.html

    广告投放 | 联系我们 | 版权申明

    重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

    如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

    联系QQ:888888 | 邮箱:888888#qq.com(#换成@)

    Copyright © 2002-2017 青云站长教程网 版权所有 琼ICP备xxxxxxxx号