こんにちは、フォーム 1 に datagridview があり、フォーム 1 を介してフォーム 2 を開き、フォーム 2 を介してフォーム 3 を開き、フォーム 1 にstring named vyber_ID_K
配置すると、フォーム 3 でアクセスする必要があります (フォーム 3 で値を取得する必要があります)。
これはform1のボタンクリック時に配置されます
form2 a = new form2 ("Novy");
string vyber_IDK = (string)dataGridView1.CurrentRow.Cells["ID_K"].Value.ToString();
a.vyber_ID_K = vyber_IDK;
a.Show();
a.Closed += klient_Closed;
にアクセスしたいのですがvyber_ID_K in form 3
、どうすればよいですか? 設定してみましたpublic string vyber_ID_K in form2 and pass it similary to form3 but I get null
。私はそれを正しくやっていますか?他に良い解決策はありますか?
前もって感謝します。
Servyによると、私のステップバイステップ:
フォーム1のボタンクリック
Func vyberIDKGetter = () => dataGridView1.CurrentRow.Cells["ID_K"].Value.ToString();
try { form2 = new form2 ("Novy"); a.vyberIDKGetter = () => dataGridView1.CurrentRow.Cells["ID_K"].Value.ToString(); a.Show();
}
form2のボタンクリック
public Func vyberIDKGetter; private void button1_Click(オブジェクト送信者, EventArgs e) { nova_platba b = new nova_platba("novy"); b.vyberIDKGetter(); b.Show(); b.Closed += klient_Closed; }
フォーム3で
Func<string> vyberIDKGetter = veberIDK; string vyberIDK = vyberIDKGetter(); SqlCommand sc = new SqlCommand(@" INSERT INTO kliplat (datum,text,castka,akce,subkey,priznak,rocnik) VALUES (@datum,@text,@castka,@akce,@subkey,@priznak,@rocnik); SELECT scope_identity(); ", spojeni); sc.Parameters.AddWithValue("@subkey", vyberIDK);