0

当 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;
    }
}
4

3 回答 3

2

您需要改善表格之间的沟通。请参阅此问题中已接受的答案。

适应您的代码:

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;
    };
} 

假设您在表单的某处有一个提交按钮。

于 2012-08-13T21:46:41.700 回答
0

即使它是公共的,它仍然属于类Form2

var dateTimeStr = Form2.textBox100.Text;
于 2012-08-13T21:27:16.310 回答
0

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

于 2012-08-13T21:36:15.003 回答