我有两个复选框和一个列表框。我分配功能 两个复选框。我想点击时添加项目 复选框。我正在研究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();
}
答案 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>