单击复选框时,将函数的值添加到列表框?

时间:2009-07-11 18:22:55

标签: c#

我有两个复选框和一个列表框。我分配功能 两个复选框。我想点击时添加项目 复选框。我正在研究C#。我尝试了以下代码。 它正在工作但是当我点击时会覆盖它的值 另一个复选框。

protected void Page_Load(object sender, EventArgs e)
{

    if (CheckBox1.Checked)
        pizza();

    if (CheckBox2.Checked)
        burger();
}

protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
{
    if (CheckBox1.Checked == true)
        pizza();
}

protected void CheckBox2_CheckedChanged(object sender, EventArgs e)
{
    if (CheckBox2.Checked)
        burger();
}

2 个答案:

答案 0 :(得分:0)

当某些复选框的选中状态发生变化时,您是否尝试将方法中的数据添加到列表框中?您需要在InitializeComponent中进行适当的连线,但这可以通过设计师完成。

using System;
using System.Windows.Forms;

namespace CheckBox
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {
            listBox1.Items.Add(DataGenerator1());
        }

        private void checkBox2_CheckedChanged(object sender, EventArgs e)
        {
            listBox1.Items.Add(DataGenerator2());
        }

        private DateTime DataGenerator1()
        {
            // this is just a sample, put what you want here.
            return DateTime.Now;
        }

        private DateTime DataGenerator2()
        {
            // this is just a sample, put what you want here.
            return DateTime.Now;
        }
    }
}

答案 1 :(得分:0)

由于您没有指定任何关于您正在使用的语言或技术的东西,我冒昧地假设您想要用HTML / JavaScript完成任务。所以这是解决方案。

    <input onchange="javascript:chkchanged('chk1');" type="checkbox" 
                                      id="chk1" value="chk1" /> Chk1<br/>
    <input onchange="javascript:chkchanged('chk2');" type="checkbox" 
                                      id="chk2" value="chk2" /> Chk2<br/>
    <select id="sel"></select>

    <script type="text/javascript">
    function chkchanged(a)
    {
      if(document.getElementById(a).checked)
      {
            var s=document.getElementById("sel");
            var o = document.createElement('option');
            o.text = a;
            o.value = a;

            try {
                s.add(o, null);
            }
            catch(ex) {
                s.add(o);
            }
      }
      else //if you want to remove also on unchecking
      {
           var s=document.getElementById('sel');
           var i;
           for( i=0; i < s.length; i++ ) {
               if (s.options[i].text == a) {
                  s.remove(i);
               }
           }
      }
    }
    </script>