2

ユーザーがリストボックスからWord文書に要素をドラッグアンドドロップできるようにするWord2003用のテンプレートベースのアドインを開発しています。残念ながら、ドキュメントのヘッダーに要素をドロップしようとすると、非常に奇妙な動作が発生します。

  1. テンプレートを開き、ヘッダーに何かを入力します
  2. ヘッダーを閉じて、ページにコンテンツを挿入します
  3. ページ分割を追加します。
  4. ページレイアウトモードに切り替え、ズームレベルを「2ページ」に設定します
  5. ヘッダーを開く
  6. リストアイテムをリストボックスからヘッダーにゆっくりとドラッグアンドドロップします。
  7. Wordがクラッシュする原因となる複数のページ設定ダイアログが発生することを確認してください。

これが私のコードです:

// in ThisDocument.cs

public MyUserControl _control;
public void Init()
{
    _control = new MyUserControl();
    ActionsPane.Controls.Add(_control);
    ActionsPane.Visible = true;
}

// in MyUserControl.cs

public void listBox1_MouseDown(object sender, MouseEventArgs e)
{
    DoDragDrop("something", DragDropEffects.Copy);
}

ドラッグアンドドロップの実装で何か間違ったことをしましたか?この奇妙な動作の回避策はありますか?

よろしくお願いします、
オリバーハナッピ

ビデオ

バグを示す小さなビデオを作成しました。ここからダウンロードできます:http://rapidshare.com/files/364907873/word-2003-bug.rar

残念ながら、使用したツールは表示設定を変更したことに気づかなかったため、1280x768を使用しましたが、1920x1200を記録しました。ビデオのサイズがおかしいので、ごめんなさい。ビデオを見ることができない場合は、コーデックが欠落している可能性があります。ここで入手できます:http://camstudio.org/

また、このバグはWord2007でも発生することを忘れました。ローカルマシンにはWord2007しかないため、Word 2007でビデオを録画しましたが、基本的にはWord 2003(バグを見つけた場所)でも同じです。

4

2 に答える 2

1

また、Word 2011 for Macでは、docファイルとdocxファイルの両方で発生し、ヘッダーとカーソルからのアーティファクトの視覚的な重複にも問題があります。最初の2つの問題は、2007forWindowsの既知の問題でした。

于 2011-05-31T23:52:56.110 に答える
1

これは Word 2007 でうまくいきましたが、ひどい回避策のようです。クリップボードを使用してドキュメントにキーワードを設定し、テキスト挿入後に確実に発生するように見える WindowSelectionChange イベントを処理して、本当にやりたいことを実行してみてください。

public void listBox1_MouseDown(object sender, MouseEventArgs e)
{
    Clipboard.SetText("<#KEYWORD#>");
    IDataObject dObject = Clipboard.GetDataObject();

    //This is extremely buggy coming from VSTO, this is why the clipboard is used.
    DoDragDrop(dObject, DragDropEffects.All);
}

void Application_WindowSelectionChange(Microsoft.Office.Interop.Word.Selection Sel)
{
    if (Sel.Range.Text == "<#KEYWORD#>")
    {
        Sel.Range.Text = string.Empty;
        // Do some action
    }
}
于 2010-03-19T06:59:43.953 に答える