我有一個值(讓CompanyId)在一個子窗體中。我想在MDI父窗體的級別傳遞此值。我如何從子窗體發送數據到父母MDI窗體或父母MDI從C#中的子窗體?
在子窗體中,我從datagrid視圖中的數據庫中檢索數據。 現在我從datagrid視圖中選擇一個值。
string SkillName = dataGridView1.CurrentRow.Cells [「SHORTS」]。Value.ToString();
現在我想將此SkillName值傳遞給MDI父窗體。 我該怎麼做?
我有一個值(讓CompanyId)在一個子窗體中。我想在MDI父窗體的級別傳遞此值。我如何從子窗體發送數據到父母MDI窗體或父母MDI從C#中的子窗體?
在子窗體中,我從datagrid視圖中的數據庫中檢索數據。 現在我從datagrid視圖中選擇一個值。
string SkillName = dataGridView1.CurrentRow.Cells [「SHORTS」]。Value.ToString();
現在我想將此SkillName值傳遞給MDI父窗體。 我該怎麼做?
字面上有無數的方法來做到這一點。這一切都取決於你想要做什麼以及爲什麼。 @ 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");
}
}
}
最簡單的方法是將companyId
作爲參數傳遞給表單的構造函數。
例如在公司的形式:
public partial class CompanyForm : Form
{
public CompanyForm(int companyId)
{
InitializeComponent();
}
}
當你調用新的形式,簡單地從您的通話形式傳遞值:
var form = new CompanyForm(10); // '10' the id
form.MdiParent = this;
form.Show();
你能告訴你什麼到目前爲止解決這個問題呢? – xxbbcc
在子窗體中,我從datagrid視圖中的數據庫檢索數據。 現在我從datagrid視圖中選擇一個值。 string SkillName = dataGridView1.CurrentRow.Cells [「SHORTS」]。Value.ToString(); 現在我想將這個SkillName值傳遞給MDI父窗體。 我該怎麼做? –