1

OK、私はWinFormsにまったく慣れていません。あるフォーム(frmPledgeCreation)にあるDataGridView1を別のフォームで見つけようとしています

frmPledgeCreation.Controls.Find("DataGridView1", True)

問題は、2 番目のフォームで DataGridView1 の行数を確認すると、frmPledgeCreation の DataGridView1 に多数の行がある場合でも常に 1 になることです。

frmPledgeCreation.Controls.Find("DataGridView1", True)新しいインスタンスを作成していますか? 私の目的は、この DataGridView の特定の列のセルの値を、この他のフォームから次のように設定することです...

DGV.Rows(Convert.ToInt32(gDGVindex)).Cells("SecurityName").Value = GstrSearchResult.ToString()

どこでgDGVindex行インデックスを持つグローバル変数です..しかし、私は常に範囲外のエラーが発生します。

4

3 に答える 3

0

DataGridView1 にアクセスしたいフォームで frmPledgeCreation の参照を持つことができます

in frmPledgeCreation

class frmPledgeCreation:Form
{
 public DataGridView dgv{get{return DataGridView1;}}
 Form1()
 {
  InitializeComponent();
 }
}

表示用 Form2

Form2 f=new Form2(this);
f.show();

Form2 で

class Form2
{
 frmPledgeCreation reftof1;
 Form2(frmPledgeCreation f)
 {
  reftof1=f;
 }
}

reftof1 参照を使用して Form2 の DataGridView にアクセスできるようになりました

reftof1.dgv.Rows[Convert.ToInt32(gDGVindex)].Cells["SecurityName"].Value=GstrSearchResult.ToString()
于 2013-10-31T07:15:46.097 に答える