【问题标题】:C# passing data between forms without ShowDialog()C# 在没有 ShowDialog() 的表单之间传递数据
【发布时间】:2016-03-08 23:11:07
【问题描述】:

我有一个 MainForm,其中有一个文本框和一个按钮。然后我有一个带有单个按钮的第二个表单。在程序启动时,MainForm 被初始化,当我点击按钮时,第二个表单(ShowDialog())仍然保持打开 MainForm。

所以我将这两个表单并排打开。我想要的是,当我单击按钮时,按钮将向 MainForm 发送一个字符串。 MainForm 将获取文本并将其显示在其文本框中。但我想立即进行更改 - 无需再次隐藏和显示 MainForm。有点像刷新它,当按下第二个表单上的按钮时。

我该怎么做?

注意:重要的是让发送到 MainForm 的文本在第二种形式中声明。 (在我的程序中,文本在第二个表单级别动态更改)

【问题讨论】:

标签: c# windows winforms visual-studio c#-4.0


【解决方案1】:

尝试将 TextBox 发送到第二个表单和第二个表单的构造函数,当您单击按钮时,更改 TextBox 的 Text 属性,它会看起来好像会更新,因为它们指的是相同的地点。

public partial class Form1 : Form
{
    public Form1(TextBox txt)
    {
        InitializeComponent();

        this.txt = txt;
    }

    //variable
    TextBox txt = null;

    private void button1_Click(object sender, EventArgs e)
    {
        txt.Text = "Your text";
    }
}

【讨论】:

    【解决方案2】:

    如果我理解正确,您需要在 winform 中创建一个属性。 例如:

    public partial class frmLogin : Form
        {
           public bool LoggedIn
            {
                get { return loggedIn; }
            }
    
            public frmLogin()
            {
    
                InitializeComponent();
    
    
            }
    }
    
    // Now, in your forms, you can do.
    frmLogin frm = new frmLogin ();
    
    frm.ShowDialog();
    
    var value = frm.LoggedIn;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多