2011-06-02 38 views
0

enter image description here我提出申请。主窗体名称是Form1。 而另一种形式被称为PoP。输入数据至主表格

public partial class pops : Form 
{ 
    public pops() 
    { 
     InitializeComponent(); 
     CenterToScreen(); 
    } 

    private void pops_Load(object sender, EventArgs e) 
    { 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     Close(); 
    } 

    private void lblAdminNo_Click(object sender, EventArgs e) 
    { 
    } 
} 
+0

我刚才添加的图片 – Kade 2011-06-02 18:20:29

+0

漂亮的图片,但你尝试过什么? – BugFinder 2011-06-02 19:53:15

回答

2

在弹出窗体上创建两个公共属性并从父窗体中检索它们。

string username = string.Empty; 
string password = string.Empty; 

using (LoginForm form = new LoginForm()) 
{ 
    DialogResult result = form.ShowDialog(); 
    if (result == DialogResult.Ok) 
    { 
     username = form.Username; 
     password = form.Password; 
    } 
} 
0

您可以在显示表单对象之前发送数据。创建调用方法,通过构造函数发送信息...等。

+1

您可以在Form1对象中创建公共属性并在显示Form1之前设置它们。或者你可以将参数UserName Password添加到Form1的构造函数中。然后在Form1的构造函数中,使用该数据在Form1中设置成员变量。 无论采用哪种方式,您都需要向Form1中添加变量来存储数据,并通过POP以某种方式设置它们。 另一种选择是重载显示Form1的方法,并在其中添加参数。 – 2011-06-02 17:47:59

1

这一切都取决于你从哪里调用Pop表单。

如果从Form1本身调用它,那么Popform的对象本身会为您提供值。

Pop popFrm = new Pop(); 
if(popFrm.ShowDialog() == Ok) 
{ 
    string userName = popFrm.TextBox1.Text; 
} 

如果流行是从应用程序的不同区域/部分调用,您可能需要存储在某个地方常见的两种形式。

1

这可以通过事件来完成。即使在子表单保持打开的情况下发布数据,此方法也特别有用。

技术是 - 从父母形式,订阅从事件的孩子。火灾的事件时,子窗体关闭,发送数据

-----样品编号-----

注:在父窗体添加一个按钮:Button1的

namespace WindowsFormsApplication2 
{ 

public delegate void PopSaveClickedHandler(String text); 

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
    InitializeComponent(); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
    Pops p = new Pops(); 
    p.PopSaveClicked += new PopSaveClickedHandler(p_PopSaveClicked);//Subscribe 
    p.ShowDialog(); 
    } 

    void p_PopSaveClicked(string text) 
    { 
    this.Text = text;//you have the value in parent form now, use it appropriately here. 
    } 
} 

注:在流行窗体添加一个文本框:txtUserName和按钮:btnSave

namespace WindowsFormsApplication2 
{ 
public partial class Pops : Form 
{ 

    public event PopSaveClickedHandler PopSaveClicked; 
    public Pops() 
    { 

    InitializeComponent(); 
    } 

    private void btnSave_Click(object sender, EventArgs e) 
    { 
    if(PopSaveClicked!=null) 
    { 
    this.PopSaveClicked(txtUserName.Text); 
    } 
    } 
} 
} 

摘要:

1.新增委托(地方,它提供给双方父母和孩子形式):

public delegate void PopSaveClickedHandler(String text); 

2.In形式:流行音乐,添加事件:

public event PopSaveClickedHandler PopSaveClicked; 

3.Subscribe在父窗体的事件:

p.PopSaveClicked += new PopSaveClickedHandler(p_PopSaveClicked); 

4.Invoke形式的活动:流行保存按钮单击

if(PopSaveClicked!=null) 
{ 
    this.PopSaveClicked(txtUserName.Text); 
} 
+0

谢谢你ALOT !!!!!!! – Kade 2011-06-03 09:00:10