【问题标题】:Using a variable from one form in another c# [duplicate]在另一个c#中使用一种形式的变量[重复]
【发布时间】:2016-04-26 09:30:37
【问题描述】:

我正在尝试从表格 1 中获取数据并在表格 3 中使用它。 我做了一些谷歌搜索,有些人说要使用类构造函数,我尝试了一些东西,这是我迄今为止最接近的东西,但它仍然无法工作。 请问有大神可以指教一下吗?

表格1:

string userNameText = userName.Text;
userNameText = Form3.user;

Form2:

public partial class Form3 : Form
{
    public string user
    {
        get { return userName.Text; }
        set { userName.Text = value; }
    }
}

谁能看到我在这里做错了什么?

【问题讨论】:

  • 如果你让用户静态(你显然应该这样做)怎么办,因为你访问的是类上的变量而不是对象上的变量
  • Form3 没有用户的静态属性,所以不能这样工作,所以,Form3 需要有一个实例,那么你的实例在 form1 中可用吗?
  • @BugFinder 我认为应该是或而不是(首先)其次。
  • 由于静态问题,您的示例甚至不适用于普通类。作为故障排除的事情,您应该尝试使用常规类而不是表单,然后您会发现它与表单无关
  • @barlop,你是对的,它的措辞可以更好..

标签: c#


【解决方案1】:

试试这个

//In your first forms(so form1) button handler
using(Form3 form3 = new Form3()) 
{
  if(form3.ShowDialog() == DialogResult.OK) 
  {
    someControlOnForm1.Text = form3.TheValue;
  }
}

//In Form3

//Define public property to serve value

public string TheValue 
{
  get { return someTextBoxOnForm2.Text; }
}

【讨论】:

  • 创建表单实例时使用'using'的原因是什么?我看不到 msdn 文档,表单是 IDisposable。
  • 我看到您在使用 new Form3() 时使用“使用”是正确的。如果它不是 IDisposable,它就不会编译。
  • @barlop using 必须在使用Form.Show 时使用。 ShowDialog 不需要它。更好的做法是始终使用它。
猜你喜欢
  • 1970-01-01
  • 2014-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-22
相关资源
最近更新 更多