dataGrid捕获双击事件

转载 2007年09月18日 16:29:00
namespace DataGridDoubleClick
{
 using System;
 using System.Drawing;
 using System.Collections;
 using System.ComponentModel;
 using System.Windows.Forms;
 using System.Data;

 /// <summary>
 /// Summary description for Form1.
 /// </summary>
 public class Form1 : System.Windows.Forms.Form
 {
  private System.Windows.Forms.DataGrid dataGrid1;
  private DataSet myDataSet;
  DateTime gridMouseDownTime;
  /// <summary>
  /// Required designer variable.
  /// </summary>
  private System.ComponentModel.Container components = null;

  public Form1()
  {
   //
   // Required for Windows Form Designer support
   //
   InitializeComponent();

   gridMouseDownTime = DateTime.Now;
   // Call SetUp to bind the controls.
   SetUp();
  }

  private void SetUp()
  {
   // Create a DataSet with two tables and one relation.
   MakeDataSet();
   /* Bind the DataGrid to the DataSet. The dataMember
   specifies that the Customers table should be displayed.*/
   dataGrid1.SetDataBinding(myDataSet, "Customers");

   //create and add a custom table style so we can
   //easily get at the behavior of a cell...
   AddCustomDataTableStyle();
  }

  private void MakeDataSet()
  {
   // Create a DataSet.
   myDataSet = new DataSet("myDataSet");
      
   // Create two DataTables.
   DataTable tCust = new DataTable("Customers");
   
   // Create two columns, and add them to the first table.
   DataColumn cCustID = new DataColumn("custID");
   DataColumn cCustName = new DataColumn("custName");
   DataColumn cCurrent = new DataColumn("custCity");
   tCust.Columns.Add(cCustID);
   tCust.Columns.Add(cCustName);
   tCust.Columns.Add(cCurrent);

   // Add the tables to the DataSet.
   myDataSet.Tables.Add(tCust);
   
   
   /* Populates the tables. For each customer and order,
   creates two DataRow variables. */
   DataRow newRow1;
   
   // Create three customers in the Customers Table.
   for(int i = 1; i < 4; i++)
   {
    newRow1 = tCust.NewRow();
    newRow1["custID"] = (100*i).ToString();
    tCust.Rows.Add(newRow1);
   }
   // Give each customer a distinct name.
   tCust.Rows[0]["custName"] = "John Summers";
   tCust.Rows[1]["custName"] = "Phil Seagram";
   tCust.Rows[2]["custName"] = "Sam Robinson";

   // And address
   tCust.Rows[0]["custCity"] = "Chicago";
   tCust.Rows[1]["custCity"] = "Los Angeles";
   tCust.Rows[2]["custCity"] = "Washington";
  }

  private void AddCustomDataTableStyle()
  {
   DataGridTableStyle ts1 = new DataGridTableStyle();
   ts1.MappingName = "Customers";
   // Set other properties.
   ts1.AlternatingBackColor = Color.LightGray;
   //
   // Add textbox column style so we can catch textbox mouse clicks
   DataGridTextBoxColumn TextCol = new DataGridTextBoxColumn();
   TextCol.MappingName = "custID";
   TextCol.HeaderText = "CustomerID";
   TextCol.Width = 100;
   //add handler
   TextCol.TextBox.MouseDown += new MouseEventHandler(TextBoxMouseDownHandler);
   TextCol.TextBox.DoubleClick += new EventHandler(TextBoxDoubleClickHandler);
   ts1.GridColumnStyles.Add(TextCol);

   TextCol = new DataGridTextBoxColumn();
   TextCol.MappingName = "custName";
   TextCol.HeaderText = "Customer Name";
   TextCol.Width = 100;
   //add handler
   TextCol.TextBox.MouseDown += new MouseEventHandler(TextBoxMouseDownHandler);
   TextCol.TextBox.DoubleClick += new EventHandler(TextBoxDoubleClickHandler);
   ts1.GridColumnStyles.Add(TextCol);

   TextCol = new DataGridTextBoxColumn();
   TextCol.MappingName = "custCity";
   TextCol.HeaderText = "Customer Address";
   TextCol.Width = 100;
   //add handler
   TextCol.TextBox.MouseDown += new MouseEventHandler(TextBoxMouseDownHandler);
   TextCol.TextBox.DoubleClick += new EventHandler(TextBoxDoubleClickHandler);
   ts1.GridColumnStyles.Add(TextCol);
  
    dataGrid1.TableStyles.Add(ts1);
   
  }

  /// <summary>
  /// Clean up any resources being used.
  /// </summary>
  protected override void Dispose( bool disposing )
  {
   if( disposing )
   {
    if (components != null)
    {
     components.Dispose();
    }
   }
   base.Dispose( disposing );
  }

  #region Windows Form Designer generated code
  /// <summary>
  /// Required method for Designer support - do not modify
  /// the contents of this method with the code editor.
  /// </summary>
  private void InitializeComponent()
  {
   this.dataGrid1 = new System.Windows.Forms.DataGrid();
   ((System.ComponentModel.ISupportInitialize)(this.dataGrid1)).BeginInit();
   this.SuspendLayout();
   //
   // dataGrid1
   //
   this.dataGrid1.DataMember = "";
   this.dataGrid1.HeaderForeColor = System.Drawing.SystemColors.ControlText;
   this.dataGrid1.Location = new System.Drawing.Point(38, 26);
   this.dataGrid1.Name = "dataGrid1";
   this.dataGrid1.Size = new System.Drawing.Size(442, 155);
   this.dataGrid1.TabIndex = 0;
   this.dataGrid1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.dataGrid1_MouseDown);
   this.dataGrid1.Navigate += new System.Windows.Forms.NavigateEventHandler(this.dataGrid1_Navigate);
   //
   // Form1
   //
   this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
   this.ClientSize = new System.Drawing.Size(508, 203);
   this.Controls.Add(this.dataGrid1);
   this.Name = "Form1";
   this.Text = "Form1";
   ((System.ComponentModel.ISupportInitialize)(this.dataGrid1)).EndInit();
   this.ResumeLayout(false);

  }
  #endregion

  /// <summary>
  /// The main entry point for the application.
  /// </summary>
  [STAThread]
  static void Main()
  {
   Application.Run(new Form1());
  }

  private void TextBoxDoubleClickHandler(object sender, EventArgs e)
  {
   MessageBox.Show("TrueDoubleClick");
  }

  private void TextBoxMouseDownHandler(object sender, MouseEventArgs e)
  {
   if(DateTime.Now < gridMouseDownTime.AddMilliseconds(SystemInformation.DoubleClickTime))
   {
    MessageBox.Show("GridDoubleClick");
   }
   Console.WriteLine("TextBoxMouseDownHandler  " );
  }

  private void dataGrid1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
  {
   gridMouseDownTime = DateTime.Now;
   Console.WriteLine("dataGrid1_MouseDown  " );
  }

  private void dataGrid1_Navigate(object sender, System.Windows.Forms.NavigateEventArgs ne)
  {
  
  }
 }
}
  

EasyUI DataGrid表格双击获取该行数据—笔记

绑定双击事件函数$("#queDg").datagrid({ ... ... ... ... onDblClickRow:function(rowIndex){ ...
  • qq_15370821
  • qq_15370821
  • 2016年12月10日 16:46
  • 3979

Android中view控件双击事件的捕捉

Android控件中获取双击事件的获取有时候挺折磨人的。我们可以通过控件的TouchEvent和view的postdelayed来判断控件是否被双击。 TouchEvent是来捕捉控件view被触摸的...
  • Franksun1991
  • Franksun1991
  • 2014年12月09日 23:10
  • 1387

EasyUI datagrid表格双击操作的实现

在EasyUI的表格中实现双击某行执行相应操作,主要使用onDblClickRow方法,参考代码如下: var movieList; $(function() { movieLis...
  • djc777
  • djc777
  • 2016年03月31日 10:13
  • 1405

javascript 鼠标单击和双击事件并存的实现方法

http://www.jbxue.com/article/8033.html 本文介绍下实现javascript鼠标单击与双击事件并存的方法,经常需要为一个链接注册双击事件,或让一个按钮或者其他元素...
  • Quincylk
  • Quincylk
  • 2014年08月14日 16:19
  • 22079

EasyUI中对datagrid的双击事件

昨日历史系论文盖章,这意味着大学专业课已经与我渐行渐远,有点怀念上心头,大学太快了。和几个老师聊了会,有别离的时候会发现原来老师都是这么亲切。盖章的同时,青山打个电话说道:刚哥,给你说个好消息,咱们系...
  • a137151062
  • a137151062
  • 2014年03月13日 16:54
  • 23663

easyui 双击行,启动编辑 ,及 保存 和 撤销 的实现。

DataGrid 中,使用的 事件,方法,均可查看 easyui API  1、在所有需要启动编辑的列,加上 editor,可查看 API 中,列属性:editor 。其中,当 editor 的 ty...
  • u012246342
  • u012246342
  • 2017年04月17日 14:02
  • 1325

webview双击事件的捕获

很多时候我们需要实现双击webview全屏显示的功能,那么我们首先要捕获到webview控件的双击事件:...
  • caolicheng92
  • caolicheng92
  • 2014年11月03日 21:13
  • 1426

MVVM下DataGrid的简单应用

基于MVVM模式下DataGrid的简单应用,本实例将实现一个用户列表的展示和一些数据操作功能,如图1。 图1 实例要求: (1)实现用户列表的绑定。 (2)绑定性...
  • pan_junbiao
  • pan_junbiao
  • 2016年04月03日 18:35
  • 2073

easyUI双击datagrid行然后跳转页面并且查看行内容

事物总结、和大家分享一些东西 首先要先写双击事件 函数 striped:true, idField:'id', rownumbers:true, singleSelect:tr...
  • qq_34301871
  • qq_34301871
  • 2016年12月28日 20:24
  • 2276

esayui 编辑单元格 双击编辑一个单元格,不是一行,单击其他后,关闭编辑状态,单击双击编辑可以任意调整

下面是datagriad的html,主要的地方是:editor="text" 这个属性一定要配置,不然不能生效,不一定是text,可以使用的类型有:text,textarea,checkbox,num...
  • sinat_16741503
  • sinat_16741503
  • 2017年08月09日 10:16
  • 783
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:dataGrid捕获双击事件
举报原因:
原因补充:

(最多只允许输入30个字)