获取Form2的textbox100的值到Form1

时间:2012-08-13 21:23:39

标签: c# forms textbox

我希望在DateTime.Now =用户输入日期时隐藏按钮。 textbox100在Form2中并且已经公开,但我知道还缺少其他东西,因为我收到错误:“当前上下文中不存在名称'textBox100'。”

谢谢。

public void Form1_Load(object sender, EventArgs e)
{
    var dateTimeStr = textBox100.Text;
    var user_time = DateTime.Parse(dateTimeStr);
    var time_now = DateTime.Now;

    if (time_now >= user_time)
    {
        button1.Visible = false;
    }
}

3 个答案:

答案 0 :(得分:2)

您需要改善表单之间的沟通。请参阅this question中接受的答案。

改编自您的代码:

using ( var form = new Form2() )
{
    var dateTimeStr = form.textBox100.Text;
    var user_time = DateTime.Parse(dateTimeStr);
    var time_now = DateTime.Now;

    if (time_now >= user_time)
    {
        button1.Visible = false;
    }
}

如果你需要在获取TextBox的值之前等待,也就是等待用户输入输入,那么你可以写:

string dateTimeStr;
using ( var form = new Form2() )
{
    form.submitButton.OnMouseUp += (source, e) =>
    {
        dateTimeStr = form.textBox100.Text;
    };
} 

假设您的表单中有某个提交按钮。

答案 1 :(得分:0)

即使它是公开的,它仍属于班级Form2

var dateTimeStr = Form2.textBox100.Text;

答案 2 :(得分:0)

如果Form2未实例化,并且在Form1中有引用,则无法获取textbox100的文本。然后使用UnLoCo中的一行。当然,它必须在Form2中公开

相关问题