none
有關radiobutton和checkbox選取問題 RRS feed

  • 問題

  • 各位好,有幾個問題又要向各位請教

    在同一個Panel裡面,各放了數個radiobutton和checkbox

    每一個都有各自代表的值

    當我點選了其中1個radiobutton時則checkbox就全不能點選,如果我選擇了checkbox時,radiobutton也全不能點選

    現在的問題是,如何取消radiobutton的選取狀態?否則一旦選取了radiobutton後,就再也無法選取checkbox了

    感謝~

    2010年10月7日 上午 01:55

解答

  • 所以你要

    點了radiobutton就清掉checkbox,點了checkbox要清掉radiobutton?

    如果是的話,下列用三個checkbox,radiobutton演練
    首先checkBox共享CheckedChanged事件,清除radiobutton
    然後radioButton共享Click事件,清除checkBox

     

        private void checkBox_CheckedChanged(object sender, EventArgs e)
        {
          this.radioButton1.Checked = false;
          this.radioButton2.Checked = false;
          this.radioButton3.Checked = false;
        }
    
        private void radioButton_Click(object sender, EventArgs e)
        {
          if (this.checkBox1.Checked || this.checkBox2.Checked || this.checkBox3.Checked)
          {
            this.checkBox1.Checked = false;
            this.checkBox2.Checked = false;
            this.checkBox3.Checked = false;
            RadioButton btn = (RadioButton)sender;
            btn.Checked = true;
          }
        }
    

    2010年10月7日 上午 02:46

所有回覆

  • 您的程式邏輯是
    1. 點選了其中1個radiobutton時則checkbox就全不能點選 --> 經過此步驟您就無法點選 CheckBox
    2. 選擇了checkbox時,radiobutton也全不能點選 --> 經過此步驟後您就無法點選 radiobutton

    可能要請您思考為什麼要設計這樣的程式邏輯,或者您可以加入 Button 控制項按下後回復初始狀態


    歡迎參觀我的Blog.NET菜鳥自救會
    2010年10月7日 上午 02:08
    版主
  • 您的程式邏輯是
    1. 點選了其中1個radiobutton時則checkbox就全不能點選 --> 經過此步驟您就無法點選 CheckBox
    2. 選擇了checkbox時,radiobutton也全不能點選 --> 經過此步驟後您就無法點選 radiobutton

    可能要請您思考為什麼要設計這樣的程式邏輯,或者您可以加入 Button 控制項按下後回復初始狀態


    歡迎參觀我的Blog.NET菜鳥自救會

    嗯…因為radiobutton的選項是獨立的,裡面的值分別代表某一編碼值,此編碼為負數,僅能單選

    而checkbox也是分別各代表一個值,此值多選時,要相加,但不能與radiobutton的值相加。

    舉個簡單的例子,比如說今天身上預算僅有300塊,今天去吃飯時,有飯和麵兩種主食,但價錢也都分別剛好300元,

    因此我只能選擇其中一種,但另一種選擇是,我可以吃很多種小吃,小吃單價比較便宜,只要不超過300塊,我可以多選

    飯和麵-->radiobutton

    小吃-->checkbox

    不知這樣的解釋,可否較為理解?

    不知有更好的作法嗎?

     

    2010年10月7日 上午 02:24
  • 所以你要

    點了radiobutton就清掉checkbox,點了checkbox要清掉radiobutton?

    如果是的話,下列用三個checkbox,radiobutton演練
    首先checkBox共享CheckedChanged事件,清除radiobutton
    然後radioButton共享Click事件,清除checkBox

     

        private void checkBox_CheckedChanged(object sender, EventArgs e)
        {
          this.radioButton1.Checked = false;
          this.radioButton2.Checked = false;
          this.radioButton3.Checked = false;
        }
    
        private void radioButton_Click(object sender, EventArgs e)
        {
          if (this.checkBox1.Checked || this.checkBox2.Checked || this.checkBox3.Checked)
          {
            this.checkBox1.Checked = false;
            this.checkBox2.Checked = false;
            this.checkBox3.Checked = false;
            RadioButton btn = (RadioButton)sender;
            btn.Checked = true;
          }
        }
    

    2010年10月7日 上午 02:46