2015-07-01 2 views
1

У меня есть tabcontrol, а datagridview создается динамически внутри закладки tabcontrol. Мне нужно извлечь выбранные значения строки строки из активного datagridview. Название этой сетки также будет динамически установлено. что я могу сделать, чтобы получить значения столбцов из выбранной строки? Ниже приведен код, который выполняется в случае загрузки формыC# Найти SelectedRow в динамически созданных DataGridView Inside TabControl

foreach (DataTable dtTable in Ds.Tables) 
     { 
DataGridView dgv = new DataGridView(); 
      //dgv.DataSource = dtTable; 
      dgv.AllowUserToAddRows = false; 
      dgv.AllowUserToDeleteRows = false; 
      dgv.ColumnHeadersHeightSizeMode =  System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; 
      dgv.Dock = System.Windows.Forms.DockStyle.Fill; 
      dgv.Location = new System.Drawing.Point(3, 3); 
      dgv.Name = "dgv_" + dtTable.TableName; 
      dgv.ReadOnly = true; 
      dgv.Size = new System.Drawing.Size(725, 322); 
      dgv.TabIndex = 0; 
      dgv.AutoGenerateColumns = false; 

      foreach (DataColumn dtCol in dtTable.Columns) 
      { 
       DataGridViewColumn column = new DataGridViewTextBoxColumn(); 
       column.FillWeight = 1; 
       column.Name = dtCol.ColumnName; 
       column.DataPropertyName = dtCol.ColumnName; 
       dgv.Columns.Add(column); 
      } 


      //dgv.Columns.AddRange(columns); 
      dgv.DataSource = null; 
      dgv.DataSource = dtTable; 



      lblInfo.Text = string.Format("Rows : {0} ; Columns : {1}", dtTable.Rows.Count, dtTable.Columns.Count); 

      TabPage tpInstdata = new System.Windows.Forms.TabPage(); 
      tpInstdata.Controls.Add(dgv); 
      tpInstdata.Location = new System.Drawing.Point(4, 22); 
      tpInstdata.Name = "tp_" + dtTable.TableName; 
      tpInstdata.Padding = new System.Windows.Forms.Padding(3); 
      tpInstdata.Size = new System.Drawing.Size(725, 322); 
      tpInstdata.TabIndex = 1; 
      tpInstdata.Text = dtTable.TableName; 
      tpInstdata.UseVisualStyleBackColor = true; 
      tcInstTab.TabPages.Add(tpInstdata); 
} 
+0

код полезен –

ответ

0

Connect каждый DGV к тому же SelectionChanged EventHandler в цикле Еогеасп:

dgv.SelectionChanged += aDataGridView_SelectionChanged; 

событие функции обработчика может выглядеть следующим образом:

private void aDataGridView_SelectionChanged(object sender, System.EventArgs e) 
    { 
     string aValue = ((DataGridView)sender).SelectedRows[0].Cells["ColumnOfYourInterest"].Value.ToString(); 
    } 
Смежные вопросы