2017-08-10 58 views
0

我使用我的数据网格选择要生成报告的项目。但是现在我需要按住CTRL键的时候可以选择多个项目。我怎样才能做到这一点通过单击数据网格选择多个项目

private void dgvPrint_CellClick(object sender, DataGridViewCellEventArgs e) {   
    this.Clear_Print(); 

    if (e.RowIndex < 0) 
    return; 
    this.mEmpId = Convert.ToInt32(this.dgvPrint.Rows[e.RowIndex].Cells["empid_Print"].FormattedValue); 
    this.lblEmpPrint.Text = this.dgvPrint.Rows[e.RowIndex].Cells["Empname_Print"].FormattedValue.ToString(); 

    this.btnPrint.Enabled = true; 
} 
+1

他并不需要放置在那里的'{}'括号如果你的'if'定义的任务是一个内衬。这基本上是一个简短的表格。哇删除自己的评论是一个非常聪明的想法,让我们看起来像傻瓜。 –

+0

你使用WinForm还是WPF? –

+0

@ifconfig感谢您的注意,但你可以有一个没有大括号的if语句 – karcs

回答

0

你可以尝试这样的事情

public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void Form1_Load(object sender, EventArgs e) 
    { 
     // Set properties 
     dataGridView1.MultiSelect = true; 
     dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect; 

     // Create fictional rows since i dont have your datasource 
     dataGridView1.Columns.Add("col1", "col1"); 
     dataGridView1.Columns.Add("col2", "col2"); 
     dataGridView1.Columns.Add("col3", "col3"); 

     int loop = 10; 
     for (int i = 0; i < loop; i++) 
     { 
      DataGridViewRow dgr = new DataGridViewRow(); 
      dataGridView1.Rows.Add(dgr); 
     } 
    } 

    // After button click (or any other event for that matter) 
    private void button1_Click(object sender, EventArgs e) 
    { 
     // Get all selected rows 
     foreach(DataGridViewRow dgvr in dataGridView1.SelectedRows) 
     { 
      // execute row 
      cellClickFunction(dgvr); 
     } 
    } 

    // Pass selected row to cellClickFunction (this is NOT the click event) 
    private void cellClickFunction(DataGridViewRow dgvr) 
    { 
     // Your code 
     this.Clear_Print(); 

     this.mEmpId = Convert.ToInt32(this.dgvr.Cells["empid_Print"].FormattedValue); 
     this.lblEmpPrint.Text = this.dgvPrint.dgvr["Empname_Print"].FormattedValue.ToString(); 

     this.btnPrint.Enabled = true; 
    } 
相关问题