这是一个“好编程”问题,以避免我需要剪切和粘贴代码。一位编程导师曾经对我说过,如果你正在剪切和粘贴代码,那么你可能做错了。 我有一个C#windows窗体应用程序,有六个数据输入屏幕。如果用户在表单对其数据输入控件进行更改时按下取消按钮,我正在实现确认丢弃更改的功能。我不想将此代码剪切并粘贴到每个表单的button_Cancel_Click方法中。
我已经将“你确定”问题移到了一个单独的类中但是如果我尝试从另一个类关闭该表单,编译器会抱怨不知道“this.Close()”中引用的“this”是什么到。
或者这是不是很好,我应该复制代码? 提前致谢 大卫
private void buttonCancel_Click(object sender, EventArgs e)
{
// Check and warn users of changes to the data before close.
if (dataChanged)
{
bool discardChanges = CancelForm.AreYouSure();
if (discardChanges)
{
this.Close();
}
}
else
{
this.Close();
}
}
答案 0 :(得分:0)
我决定遵循Kostas Balis的建议,因此我基本上使用取消按钮将我的代码复制并粘贴到每个表单中。我本来希望学到新东西,但似乎这可能不是学习它的最佳地点/时间。
来自Dimitry"使用从表单继承的抽象基类...."习惯了许多我不完全理解的术语。我知道,我需要学习的东西。
FSDaniel的选项看起来很有趣。我从来没有想过传递这个。关闭作为取消表单类的变量。这可能与我最初的想法最接近。
最后,我决定尽可能保持简单易懂,因为谁知道我可能会在未来几年试图理解它。 :)
P.S。我写的程序正在替换我15年前使用Access 97编写的程序,它仍在生产中:)
感谢您的想法和意见。
大卫