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

You need to improve your communication between the forms. See the accepted answer in this question.

Adapted to your code:

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

If you need to wait before taking the value of the TextBox, that is, wait for the user to type in the input, then you can write:

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

Assuming you have a submission button somewhere in your form.

于 2012-08-13T21:46:41.700 に答える
0

Form2がForm1に参照を持つインスタンスを作成していない場合、textbox100のテキストを取得できません。次に、UnLoCo からの回線を使用します。もちろん、Form2で公開する必要があります

于 2012-08-13T21:36:15.003 に答える
0

パブリックであっても、クラスに属していますForm2

var dateTimeStr = Form2.textBox100.Text;
于 2012-08-13T21:27:16.310 に答える