logo资料库

DataGridView(DataGridViewComboBoxCell)使用.doc

第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
资料共3页,全文预览结束
DataGridView(DataGridViewComboBoxCell)总结 花了两天时间,终于对 DataGridView 有了一点了解,为了赚点分,拿出来和大家分享分享^O^ 1. 获得当前选中行: int rowIndex = this.dataGridView1.CurrentCell.RowIndex; 2. 为 DataGridView 中添加一行数据: 如果 DataGridView 的 Cells 是 DataGridViewTextBoxCellde this.dataGridView1.Rows.Add(“value1”,”value2”,”valueN”);的方式添加。 如果 DataGridView 的 Cells 中包含 DataGridViewComboBoxCell int index = this.dataGridView1.Rows.Add(); DataGridViewRow dataGridRow = this.dataGridView1.Rows[index]; DataGridViewComboBoxCell dataGridViewCbo = row.Cells[dataGridViewCbo_index] as DataGridViewComboBoxCell; if (dataGridViewCbo != null) { } dataGridViewCbo.Items.Add("itemValue1"); dataGridViewCbo.Items.Add("itemValue2"); dataGridViewCbo.Items.Add("itemValue3"); row.Cells[next_Index].Value = " Value2"; row.Cells[next_Index].Value = " Value3"; row.Cells[next_Index].Value = " ValueN"; 3. 为DataGridView中DataGridViewComboBoxCell数据绑定: DataSet dataSet = null; using (SqlConnection connection = new SqlConnection("Data Source=忧伤的一点~;Initial Catalog=test;Integrated Security=SSPI")) { } dataSet = new DataSet(); SqlDataAdapter ss = new SqlDataAdapter("select * from test", connection); ; ss.Fill(dataSet); InitializeComponent(); DataGridViewComboBoxColumn dataCridCbo = this.dataGridView1.Columns["列名"] as DataGridViewComboBoxColumn; dataCridCbo.DataSource = dataSet.Tables[0]; dataCridCbo.DataPropertyName = "绑定数据的列名"; dataCridCbo.ValueMember = "绑定数据的列名"; 4. 得到DataGridView中的值 this.dataGridView1.Rows[row].Cells[col].Value.ToString(); 5. 为DataGridView中DataGridViewComboBoxCell添加默认值
在dataGridView中的RowsAdded(在一行或多行添加到集合时引发)事件中添加 //((DataGridView)sender).Rows[e.RowIndex].Cells[index].Style.NullValue = "默认值"; private void dataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e) { } ((DataGridView)sender).Rows[e.RowIndex].Cells[0].Style.NullValue = "默认值"; //通过getDataGridViewValue得到值 private string getDataGridViewValue(int col,int row) { } try { } return this.dataGridView1.Rows[row].Cells[col].Value.ToString(); catch (Exception ex) { } return this.dataGridView1.Rows[row].Cells[col].Style.NullValue.ToString(); 6. 为DataGridView中DataGridViewComboBoxCell添加事件 在dataGridView中的EditingControlShowing(显示用于编辑单元格的控件时发生)中添加 try { // // // // if (((ComboBox)e.Control).ValueMember == "persent") ((ComboBox)e.Control).SelectedIndexChanged += new EventHandler(CreateRomMessages_SelectedIndexChanged); // // } catch { } // 也许是功力不够,反正我打死也找不到在直接加事件的方法=。= public DataCridCboTest() { } InitializeComponent(); DataGridViewComboBoxColumn dataCridCbo = this.dataGridView1.Columns["列名"] as DataGridViewComboBoxColumn; dataCridCbo.ValueMember = "绑定数据的列名"; this.dataGridView1.EditingControlShowing += new DataGridViewEditingControlShowingEventHandler(dataGridView1_EditingControlShowing); void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { try {
//在判断是哪个ComboBox的时候,需要用Valuemember来判断。 if (((ComboBox)e.Control).ValueMember == "绑定数据的列名") //如果是希望得到的ComboBox的话,注册ComboBox事件 ((ComboBox)e.Control).SelectedIndexChanged += new EventHandler(CreateRomMessages_SelectedIndexChanged); }catch { } } void CreateRomMessages_SelectedIndexChanged(object sender, EventArgs e) { } MessageBox.Show(((ComboBox)sender).Text); 7. 为DataGridView中DataGridViewComboBoxCell添加 Item //绑定了数据源需要清除绑定! index = this.dataGridView1.Rows.Add(); DataGridViewRow row = this.dataGridView1.Rows[index]; DataGridViewComboBoxCell dataGridViewCbo = row.Cells[0] as DataGridViewComboBoxCell; if (dataGridViewCbo != null) { } //备份数据; object[] tempArray = new object[ dataGridViewCbo.Items.Count]; dataGridViewCbo.Items.CopyTo(tempArray, 0); string[] valueArray = new string[tempArray.Length]; for (int i = 0; i < tempArray.Length; i++) { } valueArray[i] = ((DataRowView)tempArray[i]).Row.ItemArray[0].ToString(); dataGridViewCbo.DataSource = null; //绑定了数据源需要清除绑定! dataGridViewCbo.Items.AddRange(valueArray); //载入备份的数据; dataGridViewCbo.Items.Add("aaa"); dataGridViewCbo.Items.Add("bbb");
分享到:
收藏