退出按钮取消操作

时间:2011-06-15 10:14:45

标签: c# wpf

嗨,目前我有2个按钮,更新和修改。更新按钮设置为最初隐藏。

当我单击修改按钮,修改按钮隐藏时,出现更新按钮,文本框变为非只读。然后单击更新按钮将隐藏更新按钮并显示修改按钮,文本框将被隐藏,标签将出现。

如何更改代码以便:

当我第一次点击修改按钮,我可以更新文本框值,如果按“ESC”按钮,我将隐藏“更新”按钮,文本框将只读?

以下是当前代码:

private void ProjectnumberupdateButton_Click(object sender, RoutedEventArgs e)
        {
            ProjectnumberresultLabel.Content = ProjectnumberTextBox.Text;
            ProjectnumberupdateButton.Visibility = Visibility.Hidden;
            ProjectnumberTextBox.Visibility = Visibility.Hidden;
            ProjectnumbermodifyButton.Visibility = Visibility.Visible;
            PreviousbuildversionresultLabel.Content = "" + MajorversionresultLabel.Content + "." + MinorversionresultLabel.Content + "." + ProjectnumberresultLabel.Content + "." + BuildnumberresultLabel.Content;
        }


private void ProjectnumbermodifyButton_Click(object sender, RoutedEventArgs e)
{
    ProjectnumberupdateButton.Visibility = Visibility.Visible;
    ProjectnumberTextBox.Visibility = Visibility.Visible;
    ProjectnumbermodifyButton.Visibility = Visibility.Hidden;
}

编辑: 这就是我到目前为止所做的:

    private void MajorversionTextBox_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.Key == Key.Escape)
        {
            MajorversionupdateButton.Visibility = Visibility.Hidden;
            MajorversionTextBox.Visibility = Visibility.Hidden;
            MajorversionmodifyButton.Visibility = Visibility.Visible;
        }
    }

    private void MajorversionmodifyButton_Click(object sender, RoutedEventArgs e)
    {
        MajorversionupdateButton.Visibility = Visibility.Visible;
        MajorversionTextBox.Visibility = Visibility.Visible;
        MajorversionmodifyButton.Visibility = Visibility.Hidden;
        Keyboard.Focus(MajorversionTextBox);
        MajorversionTextBox_KeyDown(); // this is the line. i have trouble hooking this up
    }
抱歉,我将项目编号更改为majorversion。

3 个答案:

答案 0 :(得分:1)

您可以为窗口编写OnKeyPress事件并跟踪ESC按钮单击。 在内部,您可以编写逻辑来切换控件的可见性。

答案 1 :(得分:0)

您可以挂钩/处理KeyDown事件,检查按下的键是否为Escape按钮,并从那里对代码中的按钮和文本框进行更改。

答案 2 :(得分:0)

单击修改按钮后,可以在文本框上设置焦点,然后在文本框中使用KeyDown事件:

private void ProjectnumberTextBox_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Escape)
    {
       ProjectnumberTextBox.ReadOnly = true;
       ProjectnumbermodifyButton.Visibility = Visibility.Hidden;
    }
}