输入数据到主表单

时间:2011-06-02 17:42:37

标签: c# windows winforms label

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)
    {
    }
}

4 个答案:

答案 0 :(得分: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;
     }
 }

答案 1 :(得分:1)

这完全取决于你从哪里调用Pop形式。

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

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

如果从应用程序的不同区域/部分调用Pop,则可能必须将其存储在两个表单共有的位置。

答案 2 :(得分: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.
  }
 }

注意:在Pops Form中添加TextBox: txtUserName 和一个Button: 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.在表格中:弹出,添加一个事件:

 public event PopSaveClickedHandler PopSaveClicked;

3.订阅父母表格中的活动:

p.PopSaveClicked += new PopSaveClickedHandler(p_PopSaveClicked);

4.在表单中调出事件:弹出保存按钮单击

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

答案 3 :(得分:0)

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