DataGridView事件CellContentClick
触发dataGridView的CellContentClick事件,并且在事件中调用Edit 方法。
实现DataGridView中添加CheckBox后不满足条件去掉勾选
并且实现勾选后将绑定数据的存入表的动作
点击确定后去掉勾选
Main.cs
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159private void tabControl1_SelectedIndexChanged(object sender, EventArgs e) { switch (this.tabControl1.SelectedIndex) { //case 0: // //显示数据 // ShowVlues(); // break; case 1: TableDefine.Initial_TableE(); for (int i = 0; i <= TableDefine.tGridField.Length - 1; i++) { cboSearch.Items.Add(TableDefine.tGridField[i].sCaption); cboSearchList.Items.Add(TableDefine.tGridField[i].sFieldName); } if (cboSearch.Items.Count > 0) { cboSearch.SelectedIndex = 0; } //取机种 DataTable ModelDT = fslConn.GetAllModel(); if (ModelDT.Rows.Count > 0) { foreach (DataRow item in ModelDT.Rows) { cboModel.Items.Add(item[0]); } } //取流程 DataTable RouteDT = fslConn.GetAllRoute(); if (RouteDT.Rows.Count > 0) { foreach (DataRow item in RouteDT.Rows) { cboRoute.Items.Add(item[0]); } } //显示数据 ShowEVlues(); break; } } //取数据显示 void ShowEVlues() { string sFieldName = string.Empty; string sFieldText = string.Empty; if (cboSearch.SelectedIndex > -1 && txtSearch.Text.Trim() != "") { sFieldName = cboSearchList.Items[cboSearch.SelectedIndex].ToString(); sFieldText = txtSearch.Text.Trim(); } if (string.IsNullOrWhiteSpace(sFieldText)) gvDataE.DataSource = fslConn.GetAllFslEName(); else gvDataE.DataSource = fslConn.GetAllFslEName(sFieldName, sFieldText); //栏位title for (int i = 0; i <= gvDataE.Columns.Count - 1; i++) { gvDataE.Columns[i].Visible = false; } for (int i = 0; i < TableDefine.tGridField.Length; i++) { string sGridField = TableDefine.tGridField[i].sFieldName; if (gvDataE.Columns.Contains(sGridField)) { gvDataE.Columns[sGridField].HeaderText = TableDefine.tGridField[i].sCaption; gvDataE.Columns[sGridField].DisplayIndex = i; //栏位显示顺序 gvDataE.Columns[sGridField].Visible = true; } } gvDataE.Focus(); //为dgv增加复选框列 DataGridViewCheckBoxColumn checkbox = new DataGridViewCheckBoxColumn(); //列显示名称 checkbox.HeaderText = "选择"; checkbox.Name = "IsChecked"; checkbox.TrueValue = true; checkbox.FalseValue = false; checkbox.DataPropertyName = "IsChecked"; //列宽 checkbox.Width = 50; //列大小不改变 checkbox.Resizable = DataGridViewTriState.False; //添加的checkbox在dgv第一列 this.gvDataE.Columns.Insert(0, checkbox); } //实现搜索 private void txtSearch_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar != (char)Keys.Return) return; ShowEVlues(); editFilter.Focus(); } //实现通过流程取站点 private void cboRoute_SelectedIndexChanged(object sender, EventArgs e) { if (cboRoute.Text != "") { //取站点 DataTable StationTypeDT = fslConn.GetAllStationType(cboRoute.Text); if (StationTypeDT.Rows.Count > 0) { for (int i = 0; i < StationTypeDT.Rows.Count; i++) { //cboStationType.Items.Add(item[0]); cboStationType.Items.Add(new Metadata(StationTypeDT.Rows[i][2].ToString(), StationTypeDT.Rows[i][0].ToString(), StationTypeDT.Rows[i][1].ToString())); } } } } //点击勾选事件后进行数据绑定 private void gvDataE_CellContentClick(object sender, DataGridViewCellEventArgs e) { string Model = cboModel.Text; string Route = cboRoute.Text; if (Model == "" || Route == ""|| cboStationType.Text == "") { MessageBox.Show("机种、流程、站点不能为空,请检查!"); //DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)this.gvDataE.Rows[e.RowIndex].Cells["IsChecked"]; // this.gvDataE.Rows[e.RowIndex].Cells["IsChecked"].Value = false; //将勾选去掉 this.gvDataE.RefreshEdit(); return; } //站点代码 string StationType = ((Metadata)cboStationType.SelectedItem).ID; //站点描述 string StationTypeDesc = ((Metadata)cboStationType.SelectedItem).NAMEDESC; if (e.ColumnIndex == 0 && e.RowIndex != -1) { //获取控件的值 DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)this.gvDataE.Rows[e.RowIndex].Cells["IsChecked"]; Boolean flag = Convert.ToBoolean(checkCell.Value); //KP品名 string gvFunName = gvDataE.Rows[e.RowIndex].Cells["MAT_TYPE_CODE"].Value.ToString(); //KP品名描述 string gvFunNameDesc = gvDataE.Rows[e.RowIndex].Cells["MAT_TYPE_DESC"].Value.ToString(); if (flag == false) { checkCell.Value = true; //添加权限 fslConn.SaveFslPower(gvFunName, gvFunNameDesc, Model,StationType, StationTypeDesc); } } }
ComboBox取值
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23main.cs //取机种 DataTable ModelDT = fslConn.GetAllModel(); if (ModelDT.Rows.Count > 0) { foreach (DataRow item in ModelDT.Rows) { cboModel.Items.Add(item[0]); } } fslConn.cs //取机种 public DataTable GetAllModel() { return fslDAL.GetAllModel(); } fslDAL.cs //取机种 public DataTable GetAllModel() { string sql = "SELECT MODEL FROM IMES.M_MODEL"; return utility.Query(sql); }
储存数据
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15fslConn.cs public long SaveFslPower(string gvFunName, string gvFunNameDesc, string Model, string StationType, string StationTypeDesc ) { return fslDAL.SaveFslPower(gvFunName, gvFunNameDesc, Model, StationType, StationTypeDesc); } fslDAL.cs //存权限 public long SaveFslPower(string gvFunName, string gvFunNameDesc, string Model, string StationType, string StationTypeDesc) { string id = GetMaxId(); string sql = @"INSERT INTO IMES.M_STATIONTYPE_PARTSPEC (ID,MODEL,STATION_TYPE,STATION_DESC,KP_SPEC,KP_SPEC_DESC,QTY,ENABLED,CREATE_EMPNO,CREATE_TIME,UPDATE_EMPNO) VALUES(:1,:2,:3,:4,:5,:6,:7,:8,:9,:10,:11)"; object[] para = new object[] { id, Model, StationType , StationTypeDesc,gvFunName, gvFunNameDesc, "1", "Y", utility.GlobalUserNo,DateTime.Now, utility.GlobalUserNo }; return utility.ExecuteSql(sql, para); }
右键删除数据
实现效果
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34Main.cs //实现DataGridView栏位右键删除数据 private void 删除ToolStripMenuItem_Click(object sender, EventArgs e) { if (gvData.Rows.Count == 0 || gvData.CurrentRow == null) { return; } string ID = gvData.CurrentRow.Cells["ID"].Value.ToString(); if (MessageBox.Show("ID:" + ID + " 确认删除吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { //M_STATIONTYPE_PARTSPEC_HT写入历史库 fslConn.SaveFslHistoryData(ID); 移除权限 fslConn.DeleteFslByIDAndFunc(ID); //显示数据 ShowVlues(); } } fslConn.cs //删除权限 public long DeleteFslByIDAndFunc(string id) { return fslDAL.DeleteFslByIDAndFunc( id); } fslDAL.cs //删除权限 public long DeleteFslByIDAndFunc(string id) { string sql = @"Delete from IMES.M_STATIONTYPE_PARTSPEC WHERE ID =:1"; object[] para = new object[] { id }; return utility.ExecuteSql(sql, para); }
到此这篇关于C# DataGridView中实现勾选存储数据和右键删除数据的文章就介绍到这了,更多相关C# DataGridView右键删除数据内容请搜索靠谱客以前的文章或继续浏览下面的相关文章希望大家以后多多支持靠谱客!
最后
以上就是专一大树最近收集整理的关于C# DataGridView中实现勾选存储数据和右键删除数据(示例代码)的全部内容,更多相关C#内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复