Forms http://img101.imageshack.us/img101/6970/stackoverflowquestion.png
我有2个输入文本框,它们带有主机或IP。当用户离开输入框时,会触发一个事件来检查输入以查看它是否实际上是一台实时计算机。然后将结果放入适当的标签中。
我的问题是,我是否应该为每个输入框使用单独的事件,因为它们会更新不同的标签?或者,我可以使用1个事件并检查调用者是谁,然后更新相应的标签吗?
答案 0 :(得分:3)
当他们更新单独的标签时,我会选择两个事件处理程序。它更清洁,不需要任何逻辑。
如果您想将该代码保存在一个地方,可以调用实际更新的实用程序方法。
答案 1 :(得分:1)
简短回答是。
如果您只有两个,那么您可以编写一个switch语句。但是你会紧紧地联系到实际的标签。
将标签放在Tag属性中的另一个选项,然后当您获得发件人获取发件人的标签时,将其转换为标签并设置文本。
答案 2 :(得分:1)
另一种选择是包含文本框和标签的自定义控件,并将事件处理程序构建到控件的textbox_leave事件中,假设您为所有控件提供了一致的逻辑。
答案 3 :(得分:0)
你可以这样做,但我会说你应该使用2个不同的事件处理程序,然后你不需要任何逻辑来决定基于调用者做什么。它使代码更清晰,更易于理解。
答案 4 :(得分:0)
使用两个事件并让处理程序调用一个将标签作为参数的公共方法。
答案 5 :(得分:0)
可能有一个主要事件处理程序(不是真正的事件处理程序,但类似)接受对标签的引用,以及调用主要事件的各个事件处理程序,如:
private void AnyTextBox_Leave(object sender, EventArgs e, Label labelToUpdate)
{
// Do stuff
}
private void TextBox1_Leave(object sender, EventArgs e)
{
AnyTextBox_Leave(sender, e, lbl1);
}
private void TextBox2_Leave(object sender, EventArgs e)
{
AnyTextBox_Leave(sender, e, lbl2);
}
答案 6 :(得分:0)
我会为每个标签注册两个单独的事件。