1

子フォームに値 (let CompanyId) があります。この値を MDI 親フォームのレベルで渡したいと考えています。

子フォームでは、データグリッド ビューでデータベースからデータを取得します。ここで、データグリッド ビューから値を選択します。

string SkillName = dataGridView1.CurrentRow.Cells["SHORTS"].Value.ToString();

次に、この SkillName 値を MDI 親フォームに渡したいと思います。これどうやってするの?

4

2 に答える 2

2

companyId最も簡単な方法は、 をパラメーターとしてフォームのコンストラクターに渡すことです。

たとえば、会社のフォームでは次のようになります。

public partial class CompanyForm : Form
{
    public CompanyForm(int companyId)
    {
        InitializeComponent();
    }
}

新しいフォームを呼び出すときは、呼び出し元のフォームから値を渡すだけです。

var form = new CompanyForm(10); // '10' the id 
form.MdiParent = this;
form.Show();
于 2013-07-24T14:25:52.850 に答える
2

文字通り無数の方法があります。それはすべて、あなたが何をしたいのか、そしてその理由によって異なります。@f0x の方法は良いですが、パブリック パラメーターを使用し、必要に応じてイベントを作成してポップし、フラグ (グローバル フラグである可能性があります) を設定します。

親から子に単純なデータを渡したい場合は、f0xが言ったように、コンストラクターでそれを行うか、実行するイベントを子に登録させ、文字列/ int /などを送信してから実行できますあなた(親)が望むときはいつでもイベントが発生し、子はすぐにそのデータを処理します。

逆の場合もあります。親が子を作成すると、子が起動するイベントに登録されます...

以下に例を示します。

public partial class Form1 : Form
{

  public void RegisterSon()
  {
     ChildForm frm = new ChildForm();
     frm.MyEventChild += new MyEvntHndler(frm_MyEventChild);
  }

  void frm_MyEventChild(string data)
  {

  }
}

public delegate void MyEvntHndler(string data);

public class ChildForm: Form
{
  public event MyEvntHndler MyEventChild;

  private void button1_Clicked(object sender, EventArgs e)
  {
     if (MyEventChild != null)
     {
        MyEventChild("This is my data");
     }
  }
}
于 2013-07-24T14:42:00.020 に答える