区分活动TAB上的F2按键

时间:2013-07-15 09:01:36

标签: c# winforms

我有一个复杂的Winform。我使用很多标签来降低复杂性,但是有一个小问题,我不知道如何解决。

让我们说我有一个名为“Example.cs”的winform屏幕。我在屏幕上有很多TABS。在每个标签中,我有一个名为“F2 - 保存”的按钮。当用户按下F2按钮时,我捕获并执行以下操作

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
    if (keyData == (Keys.F2))
    {
        btn_save.PerformClick();
        return true;
    }
    return base.ProcessCmdKey(ref msg, keyData);
}

我应该如何找到用户想要触发的按钮的click事件,因为同一个WinForm上有很多“保存按钮”?

感谢。

1 个答案:

答案 0 :(得分:3)

如果TabControl中有一组选项卡式文档,这并不意味着您必须为每个选项卡都设置一个保存按钮。在这里,您应该有一个保存按钮,并在单击保存按钮时将图片显示为当前活动的选项卡。然后,您将能够从该选项卡中选择需要保存的对象。您可以使用

等属性从活动选项卡中选择活动控件
public SomeControlToSave ActiveControl
{
    get
    {
        if (tabControl.TabPages.Count == 0)
            return null;
        return tabControl.SelectedTab.Controls.OfType<SomeControlToSave>().FirstOrDefault();
    }
}

此外,不要模拟点击事件来完成您的工作。创建一个执行require作业的方法,并从后面的代码中调用它。您还应该在事件处理程序中使用该方法。

我希望这会有所帮助。