捕捉DataGrid的双击事件
发布日期:2021-06-30 19:12:04
浏览次数:2
分类:技术文章
本文共 5283 字,大约阅读时间需要 17 分钟。
namespace DataGridDoubleClick { using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; public class Form1 : System.Windows.Forms.Form { private System.Windows.Forms.DataGrid dataGrid1; private DataSet myDataSet; DateTime gridMouseDownTime; private System.Windows.Forms.Label label1; private System.ComponentModel.Container components = null; public Form1() { InitializeComponent(); gridMouseDownTime = DateTime.Now; SetUp(); } private void SetUp() { // 用2个Table和1和Relation创建DataSet MakeDataSet(); // 数据绑定 dataGrid1.SetDataBinding(myDataSet, "Customers"); //添加样式 AddCustomDataTableStyle(); } private void MakeDataSet() { // 创建DataSet. myDataSet = new DataSet("myDataSet"); // 创建2个DataTables. DataTable tCust = new DataTable("Customers"); // 创建两个列,并添加到第一个表 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); // 把tables添加到DataSet. myDataSet.Tables.Add(tCust); /* 计算tables.对每个客户,创建DataRow变量 */ DataRow newRow1; // 添加记录到 Customers Table. for(int i = 1; i < 4; i++) { newRow1 = tCust.NewRow(); newRow1["custID"] = (100*i).ToString(); tCust.Rows.Add(newRow1); } tCust.Rows[0]["custName"] = "【孟宪会之精彩世界】"; tCust.Rows[1]["custName"] = "net_lover"; tCust.Rows[2]["custName"] = "http://xml.sz.luohuedu.net/"; tCust.Rows[0]["custCity"] = "北京"; tCust.Rows[1]["custCity"] = "上海"; tCust.Rows[2]["custCity"] = "河南"; } private void AddCustomDataTableStyle() { DataGridTableStyle ts1 = new DataGridTableStyle(); ts1.MappingName = "Customers"; // 设置属性 ts1.AlternatingBackColor = Color.LightGray; // 添加Textbox列样式,以便我们捕捉鼠标事件 DataGridTextBoxColumn TextCol = new DataGridTextBoxColumn(); TextCol.MappingName = "custID"; TextCol.HeaderText = "序号"; TextCol.Width = 100; //添加事件处理器 TextCol.TextBox.MouseDown += new MouseEventHandler(TextBoxMouseDownHandler); TextCol.TextBox.DoubleClick += new EventHandler(TextBoxDoubleClickHandler); ts1.GridColumnStyles.Add(TextCol); TextCol = new DataGridTextBoxColumn(); TextCol.MappingName = "custName"; TextCol.HeaderText = "姓名"; TextCol.Width = 100; //添加事件处理器 TextCol.TextBox.MouseDown += new MouseEventHandler(TextBoxMouseDownHandler); TextCol.TextBox.DoubleClick += new EventHandler(TextBoxDoubleClickHandler); ts1.GridColumnStyles.Add(TextCol); TextCol = new DataGridTextBoxColumn(); TextCol.MappingName = "custCity"; TextCol.HeaderText = "地址"; TextCol.Width = 100; //添加事件处理器 TextCol.TextBox.MouseDown += new MouseEventHandler(TextBoxMouseDownHandler); TextCol.TextBox.DoubleClick += new EventHandler(TextBoxDoubleClickHandler); ts1.GridColumnStyles.Add(TextCol); dataGrid1.TableStyles.Add(ts1); } protected override void Dispose( bool disposing ) { if( disposing ) { if (components != null) { components.Dispose(); } } base.Dispose( disposing ); } #region Windows Form Designer generated code private void InitializeComponent() { this.dataGrid1 = new System.Windows.Forms.DataGrid(); this.label1 = new System.Windows.Forms.Label(); ((System.ComponentModel.ISupportInitialize)(this.dataGrid1)).BeginInit(); this.SuspendLayout(); // // dataGrid1 // this.dataGrid1.CaptionBackColor = System.Drawing.SystemColors.Info; this.dataGrid1.CaptionForeColor = System.Drawing.SystemColors.WindowText; this.dataGrid1.CaptionVisible = false; this.dataGrid1.DataMember = ""; this.dataGrid1.HeaderForeColor = System.Drawing.SystemColors.ControlText; this.dataGrid1.Location = new System.Drawing.Point(11, 9); this.dataGrid1.Name = "dataGrid1"; this.dataGrid1.Size = new System.Drawing.Size(368, 144); this.dataGrid1.TabIndex = 0; this.dataGrid1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.dataGrid1_MouseDown); // // label1 // this.label1.Location = new System.Drawing.Point(4, 166); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(383, 23); this.label1.TabIndex = 1; this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; this.label1.Click += new System.EventHandler(this.Form1_Click); // // Form1 // this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.ClientSize = new System.Drawing.Size(387, 201); this.Controls.AddRange(new System.Windows.Forms.Control[] { this.label1, this.dataGrid1}); this.Name = "Form1"; this.Text = "鼠标双击事件的例子"; ((System.ComponentModel.ISupportInitialize)(this.dataGrid1)).EndInit(); this.ResumeLayout(false); } #endregion [STAThread] static void Main() { Application.Run(new Form1()); } private void TextBoxDoubleClickHandler(object sender, EventArgs e) { MessageBox.Show("双击事件发生。鼠标双击到的值:"+((TextBox)sender).Text.ToString()); } private void TextBoxMouseDownHandler(object sender, MouseEventArgs e) { if(DateTime.Now < gridMouseDownTime.AddMilliseconds(SystemInformation.DoubleClickTime)) { MessageBox.Show("双击事件发生。鼠标双击到的值:"+((TextBox)sender).Text.ToString()); } label1.Text = "TextBox 鼠标按下了。 "; } private void dataGrid1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) { gridMouseDownTime = DateTime.Now; label1.Text = "DataGrid1 鼠标按下了。 "; } private void Form1_Click(object sender, System.EventArgs e) { label1.Text=""; } private void label1_Click(object sender, System.EventArgs e) { label1.Text=""; } } }转载地址:https://linuxstyle.blog.csdn.net/article/details/1539938 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2024年04月27日 09时00分00秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
【工具与环境】Windows下安装Sublime Text 3
2019-04-30
【工具与环境】Excel中批量插入行
2019-04-30
【学习笔记】对vanilla的一些个人理解
2019-04-30
“学硕” VS “专硕”
2019-04-30
【NLP学习笔记】知识图谱阅读笔记及其心得
2019-04-30
【工具使用】新版CSDN-markdown编辑器使用指南
2019-04-30
《知识图谱》阅读笔记(六)
2019-04-30
【NLP学习笔记】中文分词(Word Segmentation,WS)
2019-04-30
【NLP学习笔记】词性标注(Part-of-speech Tagging, POS)
2019-04-30
《知识图谱》阅读笔记(七)
2019-04-30
《知识图谱》阅读笔记(九)
2019-04-30
【超越白皮书7】你需要知道关于ETH2.0的几个事实
2019-04-30
超越白皮书8:穿云而过的闪电网络
2019-04-30
AMM做市无常损失对冲分析系列(一)—— 损益及期权对冲模型构建
2019-04-30
JS中document对象和window对象有什么区别
2019-04-30
【python练习题】遍历1
2019-04-30
【matlab】显示图片且下方显示文字
2019-04-30
关于greater<int>以及类模板的一些理解
2019-04-30