0

私はイニシャルテキストでtextbox名前を付けています。 また、私はいくつか持っています。 TxtHelp
RadioButtons

イベントを発生させたら、カスタム テキストMouse_Hoverに変更したいと思います。 イベントを発生させると、の元のテキストを返したいです。 TxtHelp.Text
Mouse_LeaveTxtHelp

2各ツールのイベントを使用してこれを行う方法を知っているので、4 つの RadioButtons がある場合、それは8イベントになります。それはたくさんのコードです。私が持っているラジオボタンのこのコードのようになりeachます:

private void rb_Serial_MouseHover(object sender, EventArgs e)
  {
    txt_Ajuda.Text = "CustomText different for each RadioButton";
  }
private void rb_Serial_MouseLeave(object sender, EventArgs e)
  {
    txt_Ajuda.Text = "Return to the initial value of textbox";
  }  

もっと作る方法はありpracticalますか?コードを取る方法はありlessますか?

4

1 に答える 1

2

イベント ハンドラーを一般化します。ラジオ ボタンを識別する必要があるため、コントロールの名前を使用するか、各ラジオ ボタンのTagプロパティ (私の例では単純なInt32値)に識別データを割り当てます。

private void rb_MouseHover(Object sender, EventArgs e)
{
    switch (Convert.ToInt32(((RadioButton)sender).Tag))
    {
    case 0:
        text1.Text = "Text for radio button 0";
        break;
    case 1:
        text1.Text = "Text for radio button 1";
        break;
    case 2:
        text1.Text = "Text for radio button 2";
        break;
    case 3:
        text1.Text = "Text for radio button 3";
        break;
    //etc...
    }
}

private void rb_MouseLeave(Object sender, EventArgs e)
{
    switch (Convert.ToInt32(((RadioButton)sender).Tag))
    {
    case 0:
        text1.Text = "Original for radio button 0";
        break;
    case 1:
        text1.Text = "Original for radio button 1";
        break;
    case 2:
        text1.Text = "Original for radio button 2";
        break;
    case 3:
        text1.Text = "Original for radio button 3";
        break;
    //etc...
    }
}

これにより、同じ 2 つのイベント ハンドラーを every に割り当て、RadioButtonその中でそれらを識別するだけです。

于 2013-06-14T13:37:19.933 に答える