[Winform] DataGridView 不处理回车解决办法

解决办法:重写窗体的 ProcessCmdKey 方法

示例如下:

[csharp] view plaincopy
  1. using System.Data;  
  2. using System.Windows.Forms;  
  3.   
  4. namespace WindowsFormsApplication6  
  5. {  
  6.     public partial class Form1 : Form  
  7.     {  
  8.         public Form1()  
  9.         {  
  10.             InitializeComponent();  
  11.             InitializeUI();  
  12.         }  
  13.   
  14.         DataGridView gv;  
  15.         private void InitializeUI()  
  16.         {  
  17.             var dt = new DataTable();  
  18.             dt.Columns.Add("Col1");  
  19.             dt.Columns.Add("Col2");  
  20.   
  21.             gv = new DataGridView() { Dock = DockStyle.Fill, DataSource = dt };  
  22.             this.Controls.Add(gv);  
  23.         }  
  24.   
  25.         protected override bool ProcessCmdKey(ref Message msg, Keys keyData)  
  26.         {  
  27.             // DataGridView 第一列的单元格不处理回车  
  28.             if (keyData == Keys.Enter && gv.CurrentCell.ColumnIndex == 0)  
  29.             {  
  30.                 return true;  
  31.             }  
  32.   
  33.             return base.ProcessCmdKey(ref msg, keyData);  
  34.         }  
  35.     }  
  36. }  
posted @ 2012-12-04 20:15  Net-Spider  阅读(934)  评论(0)    收藏  举报