DataGridView使用技巧
1 private void textBox1_TextChanged(object sender, EventArgs e) 2 { 3 dataGridView1.Visible = true; 4 String conStr = ConfigurationManager.ConnectionStrings[SoftwareDictionaryInsert.BASICDICTIONARY].ConnectionString; 5 SqlConnection conn = new SqlConnection(conStr); 6 7 try 8 { 9 conn.Open(); 10 string sql = string.Format("select softwareID AS 软件编码,softwareName AS 软件名称,deletedFlag AS 停用标志 from SoftwareDictionary where deletedFlag = '0' and softwareName like '%{0}%'",textBox1.Text); 11 SqlCommand cmd = new SqlCommand(sql,conn); 12 DataTable dt_Result = new DataTable(); 13 SqlDataAdapter ada = new SqlDataAdapter(cmd); 14 ada.Fill(dt_Result); 15 dataGridView1.DataSource = dt_Result; 16 17 this.dataGridView1.Rows[0].Selected = true; 18 } 19 catch(Exception ex) 20 { 21 MessageBox.Show("程序允许错误,错误为:"+ex.Message,"提示",MessageBoxButtons.OK,MessageBoxIcon.Error); 22 } 23 finally 24 { 25 conn.Close(); 26 } 27 } 28 29 30 protected override bool ProcessCmdKey(ref Message msg, Keys keyData) 31 { 32 if (keyData == Keys.Up)//上键 33 { 34 int index = dataGridView1.CurrentCell.RowIndex; 35 36 if (index > 0) 37 { 38 dataGridView1.CurrentCell = dataGridView1.Rows[index--].Cells[0]; 39 dataGridView1.Rows[index].Cells[0].Selected = true; 40 } 41 return true; 42 } 43 if (keyData == Keys.Down)//下键 44 { 45 /* 46 int index = dataGridView1.CurrentCell.RowIndex; 47 if (index < dataGridView1.RowCount - 1) 48 { 49 dataGridView1.CurrentCell = dataGridView1.Rows[index++].Cells[0]; 50 dataGridView1.Rows[index].Cells[0].Selected = true; 51 } 52 */ 53 54 if (dataGridView1.CurrentCell != null) 55 { 56 int index = dataGridView1.CurrentCell.RowIndex; 57 if (index < dataGridView1.RowCount - 1) 58 { 59 dataGridView1.CurrentCell = dataGridView1.Rows[index++].Cells[0]; 60 dataGridView1.Rows[index].Cells[0].Selected = true; 61 } 62 } 63 else 64 { 65 MessageBox.Show("软件字典数据为空!", "提示"); 66 } 67 68 return true; 69 } 70 if (keyData == Keys.Enter)//Enter键 71 { 72 dataGridView1_CellMouseClick(null, null); 73 } 74 return base.ProcessCmdKey(ref msg, keyData); 75 } 76 77 78 private void dataGridView1_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e) 79 { 80 /* 81 * 当软件字典为空或者(deleted全为1)时, 82 * textBox录入值后,检索不到数据 83 * 这时候,textBox中有值,是无效值。 84 * 如果此时误点停用,就应该提示报错。 85 * */ 86 if (dataGridView1.CurrentCell != null) 87 { 88 DataGridViewRow row_obj = dataGridView1.CurrentRow; 89 int row = row_obj.Index; 90 softwareName = dataGridView1.Rows[row].Cells[1].Value.ToString(); 91 textBox1.Text = softwareName; 92 dataGridView1.Visible = false; 93 } 94 else 95 { 96 MessageBox.Show("填充数据不是有效数据!", "提示"); 97 } 98 99 }
分类:
C#
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构