2011-12-08 87 views
1

w /我的代码有什么问题?DatagridView选定的行错误

this.comboBox1.SelectedIndex = _f3.dataGridView2.SelectedRows[0].Index; 

我的datagrid是在form3和我的combobox是在窗体2.我怎么能实现这样的东西?

+1

我相信你应该检查包含在单元格的值,比如'dataGridView2.SelectedRows [0] .FormattedValue'或更好地利用'CurrentRow',帖子说找在组合框中的值并设置选定的索引 – V4Vendetta

+1

您收到了什么错误? – Waqas

+0

谢谢先生,但我无法访问datagridview2,我不知道如何访问它。我不断更改数据网格的访问修饰符,但错误不会消失。它表示datagridview2由于其保护级别而无法访问。 –

回答

1

相反,声明在窗口2一个公共整数,并且当你想在DataGridView的选中行的索引可以使用CurrentRowIndex property获得DataGridView中选择行状的指​​标,在​​form3你得到的selectedIndex全球varaible从窗口2并分配CurrentRowIndex,或宣布有史以来的时候需要

在窗口2应返回选定行的索引,你喜欢写东西

private int selectedindex {get; set;} 
    selectedindex = _f3.GetSelectedIndex(); 
    this.comboBox1.SelectedIndex = selectedindex; 

在form3你写这样

方法的公共方法
public int GetSelectedIndex() 
    { 
     int selectedIndex = 0; 
     try 
     { 
      if(dataGridView2.SelectedRows.Count > 0) 
      { 
       selectedIndex = dataGridView2.CurrentRow.Index; 
      } 
     } 
     catch 
     { 
      return 0; 
     } 
     return selectedIndex; 
    } 

编辑:

,您可以改用

dataGridview2.CurrentRow.Index 

在form3的DataGridView的SelectionChanged事件下你做以下的事情

private void dataGridView2_SelectionChanged(object sender, EventArgs e) 
    { 
     selectedindex = dataGridView2.CurrentRow.Index; 
    } 

,并宣布将selectedIndex为整数作为公共变量,如

public int selectedindex {get; set;} 

和窗口2使用全局变量如下面直接获得的selectedIndex,

this.comboBox1.SelectedIndex = _f3.selectedindex; 

获得有史以来的selectedIndex需要时。

+0

我不能仍然访问dataGridView2 ..部分dataGridView2错误...如上所述同样的错误。 T_T –

+0

我有2个错误先生。赛。第一个是警告。类名'?'不是此语言的有效标识符。 \t 2nd是'System.Windows.Forms.DataGridView'不包含'CurrentRowIndex'的定义,也没有扩展方法。 –

+0

@rjtubera,请参阅我现在的编辑。 –

0

变化datagridview2的Modifiers属性Public

+0

我已经改变了它。我甚至使用了所有可用的修饰符。但仍然错误不会消失。 –