2011-12-08 91 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

我已經改變了它。我甚至使用了所有可用的修飾符。但仍然錯誤不會消失。 –