捕捉DataGrid的双击事件,对DataGrid的初步了解

 联系我们     |      2020-03-14 07:48

namespace DataGridDoubleClick
{
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;

是因为原先对DataGrid的问询万分初浅,只好用来展现数据
后天做了一下对DataGrid的入木柒分学习
透过在英特网寻觅相关质感,总算能让例子达到和谐的发端须要
也初阶掌握为何人家说学习是三个渐进的进度
珍视使用的有的代码:

public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.DataGrid dataGrid1;
private DataSet myDataSet;
DateTime gridMouseDownTime;
private System.Windows.Forms.Label label1;

图片 1using System;
图片 2using System.Drawing;
图片 3using System.Collections;
图片 4using System.ComponentModel;
图片 5using System.Windows.Forms;
图片 6using System.Data;
图片 7using System.Xml;
图片 8
图片 9namespace ReadAndWrite
图片 10图片 11图片 12{
图片 13图片 14    /**//// <summary>
图片 15    /// Form1 的摘要表明。
图片 16    /// </summary>
图片 17    public class Form1 : System.Windows.Forms.Form
图片 18图片 19    图片 20{
图片 21        private System.Windows.Forms.Panel panel1;
图片 22        private System.Windows.Forms.DataGrid dataGrid1;
图片 23        private System.Windows.Forms.Button btn_BroswerXML;
图片 24        private System.Data.DataSet ds;
图片 25        private System.Windows.Forms.RichTextBox richTextBox1;
图片 26        private System.Windows.Forms.Button button1;
图片 27        private System.Windows.Forms.DataGridTableStyle dataGridTableStyle1;
图片 28        private System.Windows.Forms.DataGridBoolColumn dataGridBoolColumn1;
图片 29        private System.Windows.Forms.Button button2;
图片 30
图片 31        private bool flag =false;
图片 32图片 33        /**//// <summary>
图片 34        /// 必须的设计器变量。
图片 35        /// </summary>
图片 36        private System.ComponentModel.Container components = null;
图片 37
图片 38        public Form1()
图片 39图片 40        图片 41{
图片 42            //
图片 43            // Windows 窗体设计器扶助所必得的
图片 44            //
图片 45            InitializeComponent();
图片 46
图片 47            //
图片 48            // TODO: 在 InitializeComponent 调用后增添任何布局函数代码
图片 49            //
图片 50        }
图片 51
图片 52图片 53        /**//// <summary>
图片 54        /// 清理全部正在接纳的能源。
图片 55        /// </summary>
图片 56        protected override void Dispose( bool disposing )
图片 57图片 58        图片 59{
图片 60            if( disposing )
图片 61图片 62            图片 63{
图片 64                if (components != null) 
图片 65图片 66                图片 67{
图片 68                    components.Dispose();
图片 69                }
图片 70            }
图片 71            base.Dispose( disposing );
图片 72        }
图片 73
图片 74图片 75        Windows 窗体设计器生成的代码#region Windows 窗体设计器生成的代码
图片 76图片 77        /**//// <summary>
图片 78        /// 设计器援助所需的法子 - 不要采纳代码编辑器改革
图片 79        /// 此情势的剧情。
图片 80        /// </summary>
图片 81        private void InitializeComponent()
图片 82图片 83        图片 84{
图片 85            System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Form1));
图片 86            this.panel1 = new System.Windows.Forms.Panel();
图片 87            this.dataGrid1 = new System.Windows.Forms.DataGrid();
图片 88            this.dataGridTableStyle1 = new System.Windows.Forms.DataGridTableStyle();
图片 89            this.dataGridBoolColumn1 = new System.Windows.Forms.DataGridBoolColumn();
图片 90            this.ds = new System.Data.DataSet();
图片 91            this.btn_BroswerXML = new System.Windows.Forms.Button();
图片 92            this.richTextBox1 = new System.Windows.Forms.RichTextBox();
图片 93            this.button1 = new System.Windows.Forms.Button();
图片 94            this.button2 = new System.Windows.Forms.Button();
图片 95            this.panel1.SuspendLayout();
图片 96            ((System.ComponentModel.ISupportInitialize)(this.dataGrid1)).BeginInit();
图片 97            ((System.ComponentModel.ISupportInitialize)(this.ds)).BeginInit();
图片 98            this.SuspendLayout();
图片 99            // 
图片 100            // panel1
图片 101            // 
图片 102            this.panel1.Controls.Add(this.dataGrid1);
图片 103            this.panel1.Dock = System.Windows.Forms.DockStyle.Left;
图片 104            this.panel1.Location = new System.Drawing.Point(0, 0);
图片 105            this.panel1.Name = "panel1";
图片 106            this.panel1.Size = new System.Drawing.Size(448, 286);
图片 107            this.panel1.TabIndex = 0;
图片 108            // 
图片 109            // dataGrid1
图片 110            // 
图片 111            this.dataGrid1.AlternatingBackColor = System.Drawing.Color.Lavender;
图片 112            this.dataGrid1.BackColor = System.Drawing.Color.WhiteSmoke;
图片 113            this.dataGrid1.BackgroundColor = System.Drawing.Color.LightGray;
图片 114            this.dataGrid1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
图片 115            this.dataGrid1.CaptionBackColor = System.Drawing.Color.LightSteelBlue;
图片 116            this.dataGrid1.CaptionForeColor = System.Drawing.Color.MidnightBlue;
图片 117            this.dataGrid1.CaptionText = "XML文书档案相关属性";
图片 118            this.dataGrid1.DataMember = "";
图片 119            this.dataGrid1.Dock = System.Windows.Forms.DockStyle.Fill;
图片 120            this.dataGrid1.FlatMode = true;
图片 121            this.dataGrid1.Font = new System.Drawing.Font("Tahoma", 8F);
图片 122            this.dataGrid1.ForeColor = System.Drawing.Color.MidnightBlue;
图片 123            this.dataGrid1.GridLineColor = System.Drawing.Color.Gainsboro;
图片 124            this.dataGrid1.GridLineStyle = System.Windows.Forms.DataGridLineStyle.None;
图片 125            this.dataGrid1.HeaderBackColor = System.Drawing.Color.MidnightBlue;
图片 126            this.dataGrid1.HeaderFont = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Bold);
图片 127            this.dataGrid1.HeaderForeColor = System.Drawing.Color.WhiteSmoke;
图片 128            this.dataGrid1.LinkColor = System.Drawing.Color.Teal;
图片 129            this.dataGrid1.Location = new System.Drawing.Point(0, 0);
图片 130            this.dataGrid1.Name = "dataGrid1";
图片 131            this.dataGrid1.ParentRowsBackColor = System.Drawing.Color.Gainsboro;
图片 132            this.dataGrid1.ParentRowsForeColor = System.Drawing.Color.MidnightBlue;
图片 133            this.dataGrid1.SelectionBackColor = System.Drawing.Color.CadetBlue;
图片 134            this.dataGrid1.SelectionForeColor = System.Drawing.Color.WhiteSmoke;
图片 135            this.dataGrid1.Size = new System.Drawing.Size(448, 286);
图片 136            this.dataGrid1.TabIndex = 1;
图片 137图片 138            this.dataGrid1.TableStyles.AddRange(new System.Windows.Forms.DataGridTableStyle[] 图片 139{
图片 140                                                                                                  this.dataGridTableStyle1});
图片 141            // 
图片 142            // dataGridTableStyle1
图片 143            // 
图片 144            this.dataGridTableStyle1.DataGrid = this.dataGrid1;
图片 145图片 146            this.dataGridTableStyle1.GridColumnStyles.AddRange(new System.Windows.Forms.DataGridColumnStyle[] 图片 147{
图片 148                                                                                                                  this.dataGridBoolColumn1});
图片 149            this.dataGridTableStyle1.HeaderForeColor = System.Drawing.SystemColors.ControlText;
图片 150            this.dataGridTableStyle1.MappingName = "";
图片 151            // 
图片 152            // dataGridBoolColumn1
图片 153            // 
图片 154            this.dataGridBoolColumn1.FalseValue = false;
图片 155            this.dataGridBoolColumn1.MappingName = "";
图片 156            this.dataGridBoolColumn1.NullValue = ((object)(resources.GetObject("dataGridBoolColumn1.NullValue")));
图片 157            this.dataGridBoolColumn1.TrueValue = true;
图片 158            this.dataGridBoolColumn1.Width = 75;
图片 159            // 
图片 160            // ds
图片 161            // 
图片 162            this.ds.DataSetName = "NewDataSet";
图片 163            this.ds.Locale = new System.Globalization.CultureInfo("zh-CN");
图片 164            // 
图片 165            // btn_BroswerXML
图片 166            // 
图片 167            this.btn_BroswerXML.Location = new System.Drawing.Point(456, 8);
图片 168            this.btn_BroswerXML.Name = "btn_BroswerXML";
图片 169            this.btn_BroswerXML.Size = new System.Drawing.Size(96, 23);
图片 170            this.btn_BroswerXML.TabIndex = 1;
图片 171            this.btn_BroswerXML.Text = "选择XML文档…";
图片 172            this.btn_BroswerXML.Click += new System.EventHandler(this.btn_BroswerXML_Click);
图片 173            // 
图片 174            // richTextBox1
图片 175            // 
图片 176            this.richTextBox1.Location = new System.Drawing.Point(456, 48);
图片 177            this.richTextBox1.Name = "richTextBox1";
图片 178            this.richTextBox1.Size = new System.Drawing.Size(104, 144);
图片 179            this.richTextBox1.TabIndex = 2;
图片 180            this.richTextBox1.Text = "";
图片 181            // 
图片 182            // button1
图片 183            // 
图片 184            this.button1.Location = new System.Drawing.Point(472, 200);
图片 185            this.button1.Name = "button1";
图片 186            this.button1.TabIndex = 3;
图片 187            this.button1.Text = "Form2";
图片 188            this.button1.Click += new System.EventHandler(this.button1_Click);
图片 189            // 
图片 190            // button2
图片 191            // 
图片 192            this.button2.Location = new System.Drawing.Point(464, 240);
图片 193            this.button2.Name = "button2";
图片 194            this.button2.Size = new System.Drawing.Size(88, 23);
图片 195            this.button2.TabIndex = 4;
图片 196            this.button2.Text = "导入内容预览";
图片 197            this.button2.Click += new System.EventHandler(this.button2_Click);
图片 198            // 
图片 199            // Form1
图片 200            // 
图片 201            this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
图片 202            this.ClientSize = new System.Drawing.Size(576, 286);
图片 203            this.Controls.Add(this.button2);
图片 204            this.Controls.Add(this.button1);
图片 205            this.Controls.Add(this.richTextBox1);
图片 206            this.Controls.Add(this.btn_BroswerXML);
图片 207            this.Controls.Add(this.panel1);
图片 208            this.Name = "Form1";
图片 209            this.Text = "Form1";
图片 210            this.Load += new System.EventHandler(this.Form1_Load);
图片 211            this.panel1.ResumeLayout(false);
图片 212            ((System.ComponentModel.ISupportInitialize)(this.dataGrid1)).EndInit();
图片 213            ((System.ComponentModel.ISupportInitialize)(this.ds)).EndInit();
图片 214            this.ResumeLayout(false);
图片 215
图片 216        }
图片 217        #endregion
图片 218
图片 219图片 220        /**//// <summary>
图片 221        /// 应用程序的主入口点。
图片 222        /// </summary>
图片 223        [STAThread]
图片 224        static void Main() 
图片 225图片 226        图片 227{
图片 228            Application.Run(new Form1());
图片 229        }
图片 230
图片 231        private void btn_BroswerXML_Click(object sender, System.EventArgs e)
图片 232图片 233        图片 234{
图片 235            try
图片 236图片 237            图片 238{
图片 239                OpenFileDialog openFileDialog = new OpenFileDialog();
图片 240                openFileDialog.InitialDirectory =@"F:";
图片 241                openFileDialog.Filter ="XML文件|*.xml";
图片 242                openFileDialog.RestoreDirectory =true;
图片 243                openFileDialog.FilterIndex =1;
图片 244                if(openFileDialog.ShowDialog()==DialogResult.OK)
图片 245图片 246                图片 247{
图片 248                    flag =true;
图片 249                    ds.ReadXml(openFileDialog.FileName);
图片 250                    this.dataGrid1.DataSource =ds.Tables["Item"];
图片 251                }
图片 252                ds.Tables["Item"].Columns.Add("Current",typeof(bool));
图片 253                //STEP 1: Create a DataTable style object and set properties if required.
图片 254                DataGridTableStyle ts1 = new DataGridTableStyle();
图片 255
图片 256                //specify the table from dataset (required step)
图片 257                ts1.MappingName = "Item";
图片 258          
图片 259                // Set other properties (optional step)
图片 260                ts1.AlternatingBackColor = Color.LightBlue;
图片 261
图片 262                //STEP 2: Create a string column and add it to the tablestyle
图片 263                DataGridColumnStyle TextCol = new DataGridTextBoxColumn();
图片 264                TextCol.MappingName = "custName"; //from dataset table
图片 265                TextCol.HeaderText = "Customer Name";
图片 266                TextCol.Width = 100;
图片 267                ts1.GridColumnStyles.Add(TextCol);
图片 268
图片 269                //STEP 3: Create an int column style and add it to the tablestyle
图片 270                //this requires setting the format for the column through its property descriptor
图片 271                PropertyDescriptorCollection pdc = this.BindingContext
图片 272                    [ds, "Item"].GetItemProperties();
图片 273
图片 274                //now created a formated column using the pdc
图片 275//                DataGridTextBoxColumn csIDInt = 
图片 276//                    new DataGridTextBoxColumn(pdc["CustID"], "i", true);
图片 277//                csIDInt.MappingName = "CustID";
图片 278//                csIDInt.HeaderText = "CustID";
图片 279//                csIDInt.Width = 50;
图片 280//                ts1.GridColumnStyles.Add(csIDInt);
图片 281                DataGridTextBoxColumn csIDInt = new DataGridTextBoxColumn();
图片 282                csIDInt.MappingName="SID";
图片 283                csIDInt.HeaderText="SID";
图片 284                csIDInt.Width=100;
图片 285                ts1.GridColumnStyles.Add(csIDInt);
图片 286                
图片 287                csIDInt = new DataGridTextBoxColumn();
图片 288                csIDInt.MappingName="TID";
图片 289                csIDInt.HeaderText="TID";
图片 290                csIDInt.Width=100;
图片 291                ts1.GridColumnStyles.Add(csIDInt);
图片 292
图片 293                csIDInt = new DataGridTextBoxColumn();
图片 294                csIDInt.MappingName="IID";
图片 295                csIDInt.HeaderText="IID";
图片 296                csIDInt.Width=100;
图片 297                ts1.GridColumnStyles.Add(csIDInt);
图片 298
图片 299                csIDInt = new DataGridTextBoxColumn();
图片 300                csIDInt.MappingName="Des";
图片 301                csIDInt.HeaderText="Des";
图片 302                csIDInt.Width=100;
图片 303                ts1.GridColumnStyles.Add(csIDInt);
图片 304
图片 305                csIDInt = new DataGridTextBoxColumn();
图片 306                csIDInt.MappingName="DataType";
图片 307                csIDInt.HeaderText="DataType";
图片 308                csIDInt.Width=50;
图片 309                ts1.GridColumnStyles.Add(csIDInt);
图片 310
图片 311                csIDInt = new DataGridTextBoxColumn();
图片 312                csIDInt.MappingName="TagType";
图片 313                csIDInt.HeaderText="TagType";
图片 314                csIDInt.Width=50;
图片 315                ts1.GridColumnStyles.Add(csIDInt);
图片 316
图片 317
图片 318                //STEP 4: Add the checkbox
图片 319                DataGridColumnStyle boolCol = new DataGridBoolColumn();
图片 320                boolCol.MappingName = "Current";
图片 321                boolCol.HeaderText = "请接受要导入的行:";
图片 322                boolCol.Width = 100;
图片 323                ts1.GridColumnStyles.Add(boolCol);
图片 324
图片 325
图片 326                //STEP 5: Add the tablestyle to your datagrid抯 tablestlye collection
图片 327                this.dataGrid1.TableStyles.Add(ts1);
图片 328                
图片 329                ds.Tables["Item"].Rows[0]["Current"]=true;
图片 330                ds.Tables["Item"].Rows[1]["Current"]=false;
图片 331            }
图片 332            catch(Exception ex)
图片 333图片 334            图片 335{
图片 336                MessageBox.Show(ex.Message);
图片 337            }
图片 338        }
图片 339
图片 340        private void button1_Click(object sender, System.EventArgs e)
图片 341图片 342        图片 343{
图片 344            Form2 form = new Form2();
图片 345            form.Show();
图片 346        }
图片 347
图片 348        private void Form1_Load(object sender, System.EventArgs e)
图片 349图片 350        图片 351{
图片 352            
图片 353        }
图片 354
图片 355        private void button2_Click(object sender, System.EventArgs e)
图片 356图片 357        图片 358{
图片 359            if(flag ==false)
图片 360图片 361            图片 362{
图片 363                Message博克斯.Show("还不曾采取XML文书档案!"卡塔尔;
图片 364            }
图片 365            else
图片 366图片 367            图片 368{
图片 369                for(int i=0;i<ds.Tables["Item"].Rows.Count;i++)
图片 370图片 371                图片 372{
图片 373                    if(ds.Tables["Item"].Rows[i]["Current"].Equals(true))
图片 374图片 375                    图片 376{
图片 377                        this.richTextBox1.Text+="n"+ds.Tables["Item"].Rows[i]["TID"].ToString();
图片 378                    }
图片 379                }
图片 380            }
图片 381        }
图片 382
图片 383    }
图片 384}
图片 385

private System.ComponentModel.Container components = null;

再有许多不明白的地点,以后将尤其对XML操作的上学。

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"] = "";

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;

上一篇:快速入门,中使用正则表达式初探 下一篇:没有了