none
在Winform DataGridView中,如何将其中的一行的DataGridViewCheckBoxColumn默认设置为选中 RRS feed

答案

  • 你好!

    能过 DataGridViewRow 可以获取到绑定的数据源行在的行。设置 DataGridViewCell 对应的数据源行上的值更改选中状态。


    知识改变命运,奋斗成就人生!
    2010年5月26日 8:16
    版主
  • private BindingSource bs;
    
    private void BindGrid()
    {
      // 表中有三个字段,绑定到 DataGridView 时只显示“编号”与“书名”字段。
      DataTable dt = new DataTable();
      dt.Columns.Add("Selected", typeof(bool));
      dt.Columns.Add("Code", typeof(string));
    
      dt.Rows.Add(new object[] { false, "001" });
      dt.Rows.Add(new object[] { false, "002" });
    
      this.dataGridView1.AutoGenerateColumns = false; // 不允许自动创建列
    
      // 添加“编号”与“书名”字段。
      DataGridViewCheckBoxColumn col1 = new DataGridViewCheckBoxColumn();
      DataGridViewTextBoxColumn col2 = new DataGridViewTextBoxColumn();
      col1.HeaderText = "Selected";
      col2.HeaderText = "Code";
    
      col1.DataPropertyName = "Selected";
      col2.DataPropertyName = "Code";
    
      this.dataGridView1.Columns.Add(col1);
      this.dataGridView1.Columns.Add(col2);
    
      bs = new BindingSource(dt, null);
      this.dataGridView1.DataSource = bs; // 使用 BindingSource 进行绑定
    
      // 将第一行的 checkBox 选中
      DataRowView drv1 = this.dataGridView1.Rows[0].DataBoundItem as DataRowView;
      drv1["Selected"] = true;
      bs.ResetCurrentItem(); // 刷新显示
    
      // 获取第二行的选中状态
      DataRowView drv2 = this.dataGridView1.Rows[0].DataBoundItem as DataRowView;
      bool selected = (bool)drv2["Selected"];
      MessageBox.Show(selected.ToString());
    }

    知识改变命运,奋斗成就人生!
    2010年5月26日 8:21
    版主

全部回复

  • 你好!

    能过 DataGridViewRow 可以获取到绑定的数据源行在的行。设置 DataGridViewCell 对应的数据源行上的值更改选中状态。


    知识改变命运,奋斗成就人生!
    2010年5月26日 8:16
    版主
  • private BindingSource bs;
    
    private void BindGrid()
    {
      // 表中有三个字段,绑定到 DataGridView 时只显示“编号”与“书名”字段。
      DataTable dt = new DataTable();
      dt.Columns.Add("Selected", typeof(bool));
      dt.Columns.Add("Code", typeof(string));
    
      dt.Rows.Add(new object[] { false, "001" });
      dt.Rows.Add(new object[] { false, "002" });
    
      this.dataGridView1.AutoGenerateColumns = false; // 不允许自动创建列
    
      // 添加“编号”与“书名”字段。
      DataGridViewCheckBoxColumn col1 = new DataGridViewCheckBoxColumn();
      DataGridViewTextBoxColumn col2 = new DataGridViewTextBoxColumn();
      col1.HeaderText = "Selected";
      col2.HeaderText = "Code";
    
      col1.DataPropertyName = "Selected";
      col2.DataPropertyName = "Code";
    
      this.dataGridView1.Columns.Add(col1);
      this.dataGridView1.Columns.Add(col2);
    
      bs = new BindingSource(dt, null);
      this.dataGridView1.DataSource = bs; // 使用 BindingSource 进行绑定
    
      // 将第一行的 checkBox 选中
      DataRowView drv1 = this.dataGridView1.Rows[0].DataBoundItem as DataRowView;
      drv1["Selected"] = true;
      bs.ResetCurrentItem(); // 刷新显示
    
      // 获取第二行的选中状态
      DataRowView drv2 = this.dataGridView1.Rows[0].DataBoundItem as DataRowView;
      bool selected = (bool)drv2["Selected"];
      MessageBox.Show(selected.ToString());
    }

    知识改变命运,奋斗成就人生!
    2010年5月26日 8:21
    版主