none
Buttonのイベントを追加したいですが。 RRS feed

  • 質問

  • C#の初心者です、宜しくお願いします。

     

    Buttonのイベントを追加したいです。
    今、ComboBox1 値は1~10、
    ボタン"←"とボタン"→"を配置しました。

    ボタン"→"をクリックした場合、ComboBox1の値は1~10へ変更できる。
    ボタン"←"をクリックした場合、ComboBox1の値は10~1へ変更できる。
    ComboBox1_SelectedIndexChangedの機能と同じになれば、宜しいです。
    仕方は解らないです。

     

    ヒント、解決策があるようでしたら教えていただけないでしょうか。
    宜しくお願いいたします。

    2007年11月5日 6:34

回答

  • ボタンを押した時に、comboBox1.SelectedIndex++; や comboBox1.SelectedIndex--; を実行すればよいです。

    その際にインデックスの範囲をチェックしないと例外が発生します。

     

    グルーピングされているものは大抵インデックスで操作できますので、その辺りに着眼されると良いと思います。

    2007年11月5日 9:02
    モデレータ

すべての返信

  • 剣道 さん、こんにちは

    ダッチです。

     

    そのような動きであれば NumericUpDown コントロールで実現できますよ。

    値の範囲は Minimum プロパティから Maximum プロパティで設定できますし、

    値が変更された時は ValueChanged イベントが発生します。

     

    ただ "←" "→" ボタンではなく "▲" "▼" こういうボタンになってしまいますが。
    2007年11月5日 8:06
  • ダッチさんへ

    剣道です。

    ご返答を頂き、ご丁寧に指導をして頂き、有難う御座います。

     

    <そのような動きであれば NumericUpDown コントロールで実現できますよ。>

    NumericUpDown コントロールは解っていますが、

    私は、今練習のため、コントロール間の繋がりを勉強したいですので、

    ボタンを配置しました。

     

    他の方法でいけると思いますが、解らないです。

    宜しければ、教えて頂きたいです。

    本当に有難う御座いました。

     

     

     

    2007年11月5日 8:24
  • ボタンを押した時に、comboBox1.SelectedIndex++; や comboBox1.SelectedIndex--; を実行すればよいです。

    その際にインデックスの範囲をチェックしないと例外が発生します。

     

    グルーピングされているものは大抵インデックスで操作できますので、その辺りに着眼されると良いと思います。

    2007年11月5日 9:02
    モデレータ
  • trapemiya様へ

    ご丁寧に指導をして頂き、有難う御座います。

     

    試したところ,思い通りの動作になりました。

    自分の知らなかった部分をアドバイス頂き、とても参考になりました。

    私、勉強も頑張りたいと思います。

    今後ともよろしくお願い申し上げます。

     

    下記は修正したPGです。

    private void MinusButton_Click(object sender, EventArgs e)
            {
                try
                {

                    if (ComboBox1.SelectedIndex != 0)
                    {

                        if (ComboBox1.Items.Count -1 >= ComboBox1.SelectedIndex)                 
                        {
                            ComboBox1.SelectedIndex--;
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }

            }

     

    private void PlusButton_Click(object sender, EventArgs e)
            {
                try
                {

                    if (ComboBox1.SelectedIndex != -1)
                    {

                        if (ComboBox1.Items.Count -1 > ComboBox1.SelectedIndex)                 
                        {
                            ComboBox1.SelectedIndex++;
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }

            }

     

     

     

    2007年11月5日 11:39