gpt4 book ai didi

c# - 使用功能区回调意味着什么?

转载 作者:行者123 更新时间:2023-12-02 19:57:13 27 4
gpt4 key购买 nike

我正在为 Excel 开发 COM 加载项,并且收到了一条评论,建议我应该使用功能区回调。

我的代码似乎可以工作,所以我不知道问题出在哪里。我在 Internet 上阅读过有关回调的信息,但不明白它与我的加载项有何关系。

给我反馈的人是一个比我更好的程序员,所以他可能是对的。也许你们更了解使用功能区回调的含义以及为什么我应该使用它?

这是我的代码中的一个示例,它对功能区使用react并修改功能区:

private void AdxRibbonButton2_OnClick(object sender, IRibbonControl control, bool pressed)
{
if (CurrentExcelWorksheetEventsInstance.TimerOn == false) {
//Start Timer
CurrentExcelWorksheetEventsInstance.TimerStart = Now;
CurrentExcelWorksheetEventsInstance.TimerOn = true;
UpdateRibbonTimer(CurrentExcelWorksheetEventsInstance.TimerOn);
} else {
//Stop Timer
NewTableRow(true, Math.Round(DateDiff(DateInterval.Second, CurrentExcelWorksheetEventsInstance.TimerStart, Now()) / 60.0 / 60.0, 3));
CurrentExcelWorksheetEventsInstance.TimerOn = false;
UpdateRibbonTimer(CurrentExcelWorksheetEventsInstance.TimerOn);
}
}

最佳答案

回调是用户与功能区 XML 控件交互时执行的函数。 AdxRibbonButton2_OnClick 函数显然不是回调。它可能是一个事件处理程序,因为第一个参数称为 sender 并且类型为 object。复选框或切换按钮的回调函数如下所示:

public void MyCheckBox_OnAction(IRibbonControl control, bool isPressed)
{
}

在XML文件中,控件可以这样定义:

<checkBox id="MyCheckBox" onAction="MyCheckBox_OnAction" />

这样,当单击复选框时,就会调用回调。回调的行为就像事件处理程序一样。不同之处在于它们绑定(bind)在 XML 文件中,而不是代码中。

使用回调会更容易一些,而不是注册事件。使用功能区 XML 时也更方便一些。要注册事件,您需要维护对控件的引用,并且必须编写一行代码来手动注册事件处理程序。仅当您需要注册多个回调或想要取消注册回调或直到运行时才知道要注册的回调时,才应使用事件。

关于c# - 使用功能区回调意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31262782/

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