您可以使用NO CODING做到这一点。
对于布尔值:1)在窗体上创建一个复选框。 2)双击复选框。完成。
VS创建,链接和导航你编辑一个新的功能,每当复选框发生变化时被调用,用户是否点击了控件或程序代码实际上改变了的值。为其分配相同的值不起作用。 (测试)
...
// Demonstrate behavior:
checkBox1.Checked = false; // does not trigger checkBox1_CheckedChanged (the first time) because the form defaulted it to false)
checkBox1.Checked = false; // does not trigger checkBox1_CheckedChanged
checkBox1.Checked = true; // triggers checkBox1_CheckedChanged
checkBox1.Checked = true; // does not trigger checkBox1_CheckedChanged
checkBox1.Checked = false; // triggers checkBox1_CheckedChanged
checkBox1.Checked = false; // does not trigger checkBox1_CheckedChanged
...
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
// Modal pop-up to display checkBox1.Checked (it converts to "False" or "True"):
MessageBox.Show(new Form() {TopMost=true,TopLevel=true}, "Checked =" + checkBox1.Checked, "Message", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
缺点:不是最好的设计模式。你现在在你的表格上有一个虚假的领域(除非你想在那里)。你可以禁用它来防止用户切换它,它仍然会工作。 (测试)你可以使它看不见,但它仍然是“在那里”。要从表单中取出,您必须替换您借用的GUI代码。
恐怖:checkBox1.Checked被checkBox1_CheckedChanged之前更新或属性的值被调用,但形式上的复选框不会更新后,直到 checkBox1_CheckedChanged回报。即使你拨打this.Update()
。 (已测试)(在VS2010上针对.NET 3.0进行测试。)
如果您可以将字符串转换为字符串属性,则可以使用其setter来触发任何其他想要发生的事情。 – TaW