2012-01-04 11 views
1

バグが見つかりました。 Powerpoint 2010のアドインを開発しています。イベント(WindowSelectionChange)は、図形などの図形が選択/選択解除されたときに発生します。 ただし、このイベントを使用してカスタムタスクペインのVisibilityプロパティを変更すると、シェイプがスライドの左右に移動します。例:PowerpointのVSTO:WindowSelectionChangeのカスタム作業ウィンドウの表示を変更すると、選択した図形が移動する

Private Sub Application_WindowSelectionChange(Sel As Microsoft.Office.Interop.PowerPoint.Selection) Handles Application.WindowSelectionChange 
    cTaskPane.Visible = Not cTaskPane.Visible 
End Sub 

私は形状のLeftプロパティを監視しようとしましたが、それはWindowSelectionChangeサブの開始から終了まで変更されません。したがって、その後に起こらなければならない。

どうすればこの問題を回避できますか? 回避策はありますか?

+0

また、私はこのイベントの後に発火するかわからないです。 – user979719

+0

ここに問題の画面が表示されます: http://www.youtube.com/watch?v=Dr5Dy5mwOI0 – user979719

+0

WindowSelectionChangeからイベントを発生させ、イベントコールバックを使用してタスクパネルを設定してください... – Fabio

答えて

0

マウスがシェイプを保持しているため、シェイプがウィンドウが縮小されたときに右に移動するためです。より詳細には

、移動が4つの段階で起こる:

  1. マウスを押し、その後、ウィンドウがスライドビューウィンドウが縮小させるれ、見えるようになり、ウィンドウの選択の変化を引き起こしました。
  2. マウスの位置が変わらないうちにスライドビューウィンドウが縮小されるため、マウスはスライドを右に動かします。
  3. マウスが押しているので、図形はマウスで固定されているため、マウスの現在の位置に移動します。
  4. 再びペインが非表示になると、スライドビューウィンドウのサイズが元に戻り、シェイプが再び移動します。これを避けるために

、私は(コードはC#である)あなたがWindowSelectionChangeイベントを使用することをお勧めして選択が形状であるかどうかを確認:

private void WindowSelectionChangedHandler(PowerPoint.Selection selection) 
{ 
    if (selection.Type == PowerPoint.PpSelectionType.ppSelectionShapes) 
    { 
     //do your stuff 
    } 
} 
+0

申し訳ありませんこのイベントはどこから届いていますか? C#またはVBのVS2013には存在しません。どこに配線していますか? –

+0

WindowSelectionChangeイベントである必要があります。ハンドラの名前は誤解を招いています。申し訳ありません:P私は答えを更新しました:) – nevets

関連する問題