按钮设置DialogResult自动?

时间:2013-12-29 09:42:59

标签: c# winforms

我已使用以下方法覆盖此表单上的默认ShowDialog()方法:

    public DialogResult ShowDialog(int itemToEdit) 
    {
        this._itemToEdit = itemToEdit;
        FillForm(Program.AppConfig.Tweets[itemToEdit]);
        return this.ShowDialog();
    }

表单有一个“确定”和一个“取消”按钮,其点击处理程序如下所示:

    private void cancelButton_Click(object sender, EventArgs e)
    {
        this.DialogResult = DialogResult.Cancel;
    }

但是,我有另一个按钮,设置表单的DialogResult属性,但点击它时,它以某种方式设置,表单隐藏,返回{{1 }}。我不希望这种情况发生。

编辑:实际上,表单中的每个按钮都会返回DialogResult.Cancel,无论它是否有DialogResult.Cancel处理程序。

2 个答案:

答案 0 :(得分:4)

检查该按钮的DialogResult属性。它应该是None。并确保按钮Click事件未设置为cancelButton_Click

答案 1 :(得分:2)

检查表单的CancelButton - 属性。对于分配给此属性的按钮,将自动设置DialogResult(类似于AcceptButton属性)。
另请检查其他按钮的DialogResult属性。它可能被设置为DialogResult.Cancel,然后关闭表单并返回您观察到的DialogResult。