0

カスタム作業ウィンドウで Excel アドインを作成しようとしています。このチュートリアルに従って、ユーザーがリボンのカスタム ボタンをクリックしたときに Windows フォーム コントロールを表示したいと考えています。This_AddIn_Startupただし、ウィンドウを表示できるのは、イベントにテスト メッセージ ボックスを追加したときだけです。関連するコードは次のとおりです。

ThisAddIn.cs

private InputControl myInputControl { get; set; }
private Microsoft.Office.Tools.CustomTaskPane myCustomTaskPane {get;set;}


    public CustomTaskPane TaskPane
    {
        get
        {
            return myCustomTaskPane;

        }

    }

    private void ThisAddIn_Startup(object sender, System.EventArgs e)
    {

        MessageBox.Show("loading"); //If I comment this out, task pane won't show

        myInputControl = new InputControl();
        try
        {
            myCustomTaskPane = this.CustomTaskPanes.Add(myInputControl, "Test Task Pane");
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);

        }
        myCustomTaskPane.VisibleChanged +=
    new EventHandler(myCustomTaskPane_VisibleChanged);

    }

リボン.cs

public partial class Ribbon
{
    private void Ribbon_Load(object sender, RibbonUIEventArgs e)
    {

    }

    private void btnPullData_Click(object sender, RibbonControlEventArgs e)
    {
        Globals.ThisAddIn.TaskPane.Visible = true;


    }

    private void txtPosition_TextChanged(object sender, RibbonControlEventArgs e)
    {

    }
}

この質問を確認し、他のすべてのアドインを無効にしましたが、それでも機能しませんでした。

デバッグ中にブレークポイントを設定するbtnPullData_Clickと、表示されていないときに例外がスローされることに気付きました。これが2つのスクリーンショットです。

ペインが正しく読み込まれる (メッセージ ボックスが有効になっている)

ここに画像の説明を入力

ペインが読み込まれない (メッセージ ボックスがない)

ここに画像の説明を入力

完全な例外テキスト:

base = {System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
   at Microsoft.Office.Core._CustomTaskPane.get_Window()
   at Microsoft.Office.Tools.CustomTaskPaneImpl.get_Window()}

私はC#を書いている初心者ですが、その例外のトラブルシューティングを行うにはどうすればよいですか? MessageBoxを追加すると一時的に問題が解決する方法がわかりません。

編集:タイトルを変更しました

4

1 に答える 1

1

ゼロから作成したときにタスク ペインが表示されない理由が正確にはわかりませんでした。ただし、VSTO Contribを使用すると、Excel デモ プロジェクトをテンプレートとして使用し、必要な場所に独自のコードを挿入することができました。カスタム ペインは、Excel 内でいつでも簡単に表示できるようになりました。

ここから始めるのに役立つビデオ

于 2015-11-04T14:45:09.233 に答える