2016-05-15 1 views
0

私は呼び出しているメソッドに2つの問題があります。ComboBox値を別のフォームのメソッドに渡すc#

私はfrmForm1 & frmForm2を持っています。

frmForm1は、以下のような方法を...含ま次に

public frmForm1() 
{ 
    InitializeComponent(); 
} 

//This method receives the prog name and WOtype names from frmForm2 
int progID; 
string programName; 

public void GetIDandValue(string valName, int ID, string addWOValue) 
{ 
    if (valName == "progName") 
    { 
     progID = ID; 
     programName = addWOValue; 
    } 
} 

private void button1_Click(object sender, EventArgs e) 
{ 
    frmForm2 loadfrmForm2 = new frmForm2(); 
    loadfrmForm2.Show(); 
} 

(frmForm1上のBTNクリックから開かれている)frmForm2が、私は彼らができるようfrmForm1上の方法に戻って値を送信しようとしていますから、利用される。が、私は(変数を移入しようとすると、

private void button1_Click(object sender, EventArgs e) 
{ 
    selectedValueID = Int32.Parse(comboBox1.ValueMember); 
    selectedValueName = comboBox1.DisplayMember; 

    string valToSend = "progName"; 

    frmForm1.GetIDandValue(valToSend, selectedValueID, selectedValueName); 

    this.Hide(); 
} 

そして最後に、ここでComboBox1のが初期化されている方法です...

comboBox1.DisplayMember = dsAddWO.Tables[0].Columns[1].ToString(); 
comboBox1.ValueMember = dsAddWO.Tables[0].Columns[0].ToString(); 
comboBox1.DataSource = dsAddWO.Tables[0]; 
comboBox1.Enabled = true; 

問題1)ComboBox1のValueMemberでとDisplaymemberは値として列ヘッダを戻ってきていますフォーム上のコンボボックスに実際に正しいデータが表示されています)。

問題2)frmForm2からGetIDandValueメソッドを呼び出すことができません。intellisenseはそれを見ません。

間違いなく、何か信じられないほど馬鹿なことをしています。誰でも私を啓発することはできますか?これらのコードをForm2の上にコードされている用量

+0

答えをいただきありがとうございます。私はプログラムのロジックを変更して2番目のフォームを削除して解決しました。 – SiC99

答えて

0

あなたがfrmForm2

+0

ありがとう、しかし、私はすでに開いているfrmForm1に値を渡す必要があります - 私は、コンストラクタのアプローチfrmForm1の新しいインスタンスを作成する必要があると思う正しいですか?もしそうなら、私はfrmForm1で既に保持されているすべての現在の値を失います - これを開いた形式に渡す必要があるかもしれないことを私は明らかにしていたはずです。また、コンボボックスの表示/値のメンバーが列ヘッダーを保持している理由についての考え方はありますか? – SiC99

0

のコンストラクタにPROGIDとのProgramNameを渡すことができますか?

private void button1_Click(object sender, EventArgs e) { selectedValueID = Int32.Parse(comboBox1.ValueMember); selectedValueName = comboBox1.DisplayMember; string valToSend = "progName"; frmForm1.GetIDandValue(valToSend, selectedValueID, selectedValueName); this.Hide(); }

もしそうなら、より良いfrom1はのstructorを取得u'd、uがないようです。あなたのようにform2:frmForm2 loadfrmForm2 = new frmForm2();を呼び出して、と完全に似ています。From1 frmForm1 =new From1();frmForm1.GetIDandValue(valToSend, selectedValueID, selectedValueName);

+0

申し訳ありませんが、私はあなたの文章を本当に理解できません。コードの最初のビットはform1に含まれています – SiC99

関連する問題