3

RichTextBox (Windows コモン コントロール) にドラッグ アンド ドロップ機能を実装しようとしています。以下に示すコードを使用すると、正常に動作します。ただし、ReadOnly プロパティを true に設定すると、ドラッグ ドロップ イベントがトリガーされません。不足しているものはありますか?それとも正しい振る舞いですか?ご意見をお聞かせください。

private void rtb_dragdrop(object sender, DragEventArgs e)
{
    Console.WriteLine("Test");       
}

private void rtb_dragenter(object sender, DragEventArgs e)
{
    e.Effect = DragDropEffects.Copy;
}
4

1 に答える 1

3

明らかに、RichTextBox で ReadOnly プロパティを true に設定すると、ドラッグ アンド ドロップ操作を実行できなくなります。

読み取り専用の RichTextBoxを模倣する簡単なハック:

public partial class Form1 : Form {

  public Form1() {
    InitializeComponent();
    rtb.EnableAutoDragDrop = true;
    rtb.KeyDown += new KeyEventHandler(rtb_KeyDown);
  }

  void rtb_KeyDown(object sender, KeyEventArgs e) {
    e.SuppressKeyPress = true;
  }
}

EnabledAutoDragDropこれで、プロパティを true に設定すると、ドラッグ アンド ドロップ操作が自動的に機能するはずです。これらのドラッグ エンター アンド ドロップ イベントを処理する必要はありません。

于 2012-07-15T15:35:32.383 に答える