gpt4 book ai didi

c# - 区分事件 TAB 上的 F2 按键

转载 作者:行者123 更新时间:2023-11-30 12:10:39 25 4
gpt4 key购买 nike

我有一个复杂的 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);
}

由于同一个 WinForm 上有许多“保存按钮”,我应该如何找到用户打算触发的按钮的单击事件?

谢谢。

最佳答案

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

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

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

希望对您有所帮助。

关于c# - 区分事件 TAB 上的 F2 按键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17650389/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com