1

私はそれを作る方法を見つけようとしています。timerそれは私のダニのときに、、bidder00_TextChangedまたはそのようなものを実行します。

これも可能ですか?そうでない場合、それを行う他の方法はありますか?Googleで検索しようとしましたが、結果が得られませんでした。見逃したものがあれば、ここに投稿してください。

私は実際にはコードを持っていませんが、ここにあります:

private void bidder00_TextChanged(object sender, EventArgs e)
{
    if (bidder00.Text == addbidder1.Text)
    {
        bidBtn1.PerformClick();
    }
}

それが私のTextChangedイベントです

イベントtimerを実行するため、コードはありませんbidder00_TextChanged

4

2 に答える 2

3

メソッドPerform()を作成し、イベントハンドラー内から呼び出すこと ができます。

private void timer1_Tick(object sender, EventArgs e)
{
   Perform();
}

private void bidder00_TextChanged(object sender, EventArgs e)
{
   Perform();
}

private void Perform()
{
   if (bidder00.Text == addbidder1.Text)
   {
      bidBtn1.PerformClick();
   }
}
于 2013-01-21T14:26:55.367 に答える
1

私はあなたがあなたの実際の論理をあなたのclickイベントと結びつけたと思いますが、それは良い考えではありません。コードを別の関数に分離し、アプリケーションの両方の部分で同じコードを呼び出させます。

private void SubmitBid()
{
    // code you want to execute
}

private void OnSubmitBid()
{
     // confirm whether we can actually submit the bid
     if (bidder00.Text == addbidder1.Text)
     {
          SubmitBid();
     }
}

private void Timer1_OnTick(object sender, EventArgs e)
{
    // trigger code from timer
    OnSubmitBid();
}

private void bidder00_TextChanged(object sender, EventArgs e)
{
    // trigger code from text change
    OnSubmitBid();
}

private void btnBid_Click(object sender, EventArgs e)
{
    // trigger code from button press
    OnSubmitBid();
}

すべてのUIコントロールが同じコードをトリガーすることに注意してください。テキストコントロールの検証(つまりOnSubmitBid())のための追加の呼び出しがあります-これが必要でない場合は、SubmitBid直接呼び出すだけです。

于 2013-01-21T14:28:40.943 に答える