我有一个功能区按钮,出现在 Outlook 的撰写电子邮件表单的 tabNewMailMessage 上,此按钮切换粘在表单侧面的 CustomTaskPane 的可见性。
在正常实践中,一切正常。但是,当从 MS Word 或 Adobe Reader 等其他应用程序通过“附加到电子邮件”或“保存并发送”调用撰写电子邮件表单时,该按钮会出现但不再执行任何操作。
我从 MSDN 了解到,在外部调用的情况下,NewInspector 事件显然不会触发。
我还没有找到任何解决这种情况的方法,这里有人知道吗?:(
编辑:此外,我有一个 Global 类(不是 Visual Studio 创建的隐藏 GlobalS 类),其中包含我在整个程序中使用的一些变量。插件也不会加载其中包含的任何内容。很难说实际加载了什么,如果有人有更多信息,请回喊!
再次编辑:测试将字符串放入ThisAddIn 并通过toggleButton 中的messageBox 打印它,但不起作用。如果有人感到困惑,如果单击事件无法执行,则功能区按钮将不会加载,因此外部调用的 Compose 表单似乎会跳过 ThisAddIn 中的所有代码以及任何不是功能区本身的类。
我真的需要帮助来解决这个问题!:(
再次编辑:这是我到目前为止所获得的,ThisAddIn 启动事件不会触发,外部类中的任何属性都不会被读取,但外部方法如 say ThisAddIn.SayHelloWorld() 确实有效。
再次编辑!:
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
//MessageBox.Show(,"TEST");
try
{
inspectors = Globals.ThisAddIn.Application.Inspectors;
inspectors.NewInspector += new InspectorsEvents_NewInspectorEventHandler(Inspectors_NewInspector);
foreach (Inspector insp in inspectors)
{
//insp.
Inspectors_NewInspector(insp);
}
}
catch (System.Exception ex)
{
List<string> lalala = new List<string>();
lalala.Add(ex.GetType().ToString());
lalala.Add(ex.Message);
lalala.Add(ex.StackTrace);
File.WriteAllLines(@"C:\outdebug",lalala.ToArray());
}
}
再次!:
void Inspectors_NewInspector(Inspector Inspect)
{
try
{
if (Inspect.CurrentItem is MailItem)
{
Global.mail = Inspect.CurrentItem;
Global.inspectorWrappersValue.Add(Inspect, new InspectorWrapper(Inspect, Global.mail));
//inspectorw
}
}
catch (System.Exception ex)
{
List<string> lalala = new List<string>();
lalala.Add(ex.GetType().ToString());
lalala.Add(ex.Message);
lalala.Add(ex.StackTrace);
lalala.Add(Global.SiteConnectionManager.ToString());
File.WriteAllText(@"C:\Users\cat\Desktop\outdebug.txt", string.Join("\n", lalala), Encoding.UTF8);
}
}