我在VisualStudio2010Pro的VisualStudio2010Pro中体验了社区版的ILNumerics 3.2.1.0和VisualStudio2010Pro在Windows7上的使用,并且通过阅读文档,我成功地获得了一个Windows项目来显示图表,使用下面的代码。
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void ilPanel1_Load(object sender, EventArgs e)
{
ILSurface mySurface = new ILSurface(ILSpecialData.sincf(100, 200));
ILPlotCube myCube = new ILPlotCube(twoDMode: false);
myCube.Add(mySurface);
ilPanel1.Scene.Add(myCube);
}
}如果我尝试完全相同的代码,但是在VSTO Excel 2010应用程序中,表单中显示的所有内容都是ILPanel的designer视图,白色背景上的蓝色圆圈。我没有收到任何错误信息。我漏掉了什么明显的东西吗?或者,有没有人有一个解决方案,如何使图表显示在VSTO?
更新
感谢Philliproso指出了IsDesignMode()方法。正如在许多地方指出的,包括这个问题,Detecting design mode from a Control's constructor,下面的方法并不理想,但对于我来说,是提供了一个快速修复,允许我评估ILNumerics。
public static bool IsDesignMode() {
if (System.Windows.Forms.Application.ExecutablePath.IndexOf("devenv.exe", StringComparison.OrdinalIgnoreCase) > -1)
{
return true;
}
return false;
}发布于 2013-07-24 11:40:24
这与这里的问题相同:
Ilnumerics Ilpanel not activating when compiled in a winform into a dll when loaded into matlab in-a-winform-in-a when loa
使用VSTO作为ILNumerics的主机,可以让面板假定它是在设计器中加载的。我们目前正在收集可能的解决办法和解决办法。一种解决方案可能是在ILNumerics的设置中引入一个标志:
Hosted [default: false]您的情况需要启用标志。在宿主模式下,可以在运行时检查常见设计器的黑名单,并将其与当前的条目程序集进行比较。还有其他建议吗?
https://stackoverflow.com/questions/17832101
复制相似问题