1

私は、Windows 7 の Visual Studio 2010 pro で .Net 4.0 を使用して ILNumerics 3.2.1.0 のコミュニティ バージョンを試してきました。次のコードを使用して、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 のデザイナー ビューだけです。エラーメッセージは表示されません。明らかな何かが欠けていますか?または、チャートをVSTOに表示する方法の解決策を誰かが持っていますか?

アップデート

IsDesignMode() メソッドを指摘してくれた Philliproso に感謝します。この質問を含むさまざまな場所で指摘されているように、コントロールのコンストラクターからデザインモードを検出する、次の方法は理想的ではありませんが、私にとっては、ILNumerics を評価できるようにするための簡単な修正が提供されています。

 public static bool IsDesignMode() {
        if (System.Windows.Forms.Application.ExecutablePath.IndexOf("devenv.exe", StringComparison.OrdinalIgnoreCase) > -1)
        {
            return true;
        }
        return false;
}
4

1 に答える 1

1

これはここと同じ問題です:

in-a-winform-into-a-dll-when-loaでmatlabにロードされたときにwinformでdllにコンパイルされたときにIlnumerics Ilpanelがアクティブにならない

ILNumerics のホストとして VSTO を使用すると、パネルはデザイナーに読み込まれたと想定できます。現在、可能な回避策と解決策を収集しています。1 つの解決策は、ILNumerics の設定にフラグを導入することです。

Hosted [default: false]

あなたの状況では、フラグを有効にする必要があります。ホスト モードでは、一般的な設計者のブラックリストを実行時にチェックし、現在のエントリー アセンブリと比較することができます。他の提案はありますか?

于 2013-07-24T11:40:24.060 に答える