如何将取消按钮方法移动到单独的类中

时间:2016-04-27 06:38:57

标签: c# winforms visual-studio-2008

这是一个“好编程”问题,以避免我需要剪切和粘贴代码。一位编程导师曾经对我说过,如果你正在剪切和粘贴代码,那么你可能做错了。 我有一个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();
        }
    }

1 个答案:

答案 0 :(得分:0)

我决定遵循Kostas Balis的建议,因此我基本上使用取消按钮将我的代码复制并粘贴到每个表单中。我本来希望学到新东西,但似乎这可能不是学习它的最佳地点/时间。

来自Dimitry"使用从表单继承的抽象基类...."习惯了许多我不完全理解的术语。我知道,我需要学习的东西。

FSDaniel的选项看起来很有趣。我从来没有想过传递这个。关闭作为取消表单类的变量。这可能与我最初的想法最接近。

最后,我决定尽可能保持简单易懂,因为谁知道我可能会在未来几年试图理解它。 :)

P.S。我写的程序正在替换我15年前使用Access 97编写的程序,它仍在生产中:)

感谢您的想法和意见。

大卫