コントロールでドラッグ アンド ドロップ操作を実行できるかどうかを示す値を取得または設定します。
Overrides Public Property AllowDrop As Boolean
[C#]
public override bool AllowDrop {get; set;}
[C++]
public: __property bool get_AllowDrop();public: __property void set_AllowDrop(bool);
[JScript]
public override function get AllowDrop() : Boolean;public override function set AllowDrop(Boolean);
プロパティ値
コントロールでドラッグ アンド ドロップ操作を実行できる場合は true 。それ以外の場合は false 。
使用例
[Visual Basic, C#, C++] 項目が格納されている ListBox コントロールを使用してドラッグ アンド ドロップ操作を実行し、 RichTextBox コントロールにドロップする方法を次の例に示します。フォームのコンストラクタは、 AllowDrop プロパティを true に設定し、 RichTextBox でドラッグ アンド ドロップが発生できるようにします。この例では、 ListBox の MouseDown イベントを使用し、 DoDragDrop メソッドを呼び出すことによってドラッグ操作を開始しています。この例では、 RichTextBox にドラッグされている項目が有効なデータ型かどうかを判別するために DragEnter イベントを使用しています。 DragDrop イベントでは、ドラッグされた項目を実際に RichTextBox コントロールの、 RichTextBox 内の現在のカーソル位置にドロップします。この例は、 DragDrop イベントおよび DragEnter イベントがこの例で定義されているイベント ハンドラに関連付けられていることを前提にしています。
Public Sub New()
MyBase.New()
'This call is required by the Windows Form Designer.
InitializeComponent()
richTextBox1.AllowDrop = True
End Sub
Private Sub listBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles listBox1.MouseDown
' Determines which item was selected.
Dim lb As ListBox = CType(sender, ListBox)
Dim pt As New Point(e.X, e.Y)
'Retrieve the item at the specified ___location within the ListBox.
Dim index As Integer = lb.IndexFromPoint(pt)
' Starts a drag-and-drop operation.
If index >= 0 Then
' Retrieve the selected item text to drag into the RichTextBox.
lb.DoDragDrop(lb.Items(index).ToString(), DragDropEffects.Copy)
End If
End Sub 'listBox1_MouseDown
Private Sub richTextBox1_DragEnter(ByVal sender As Object, ByVal e As DragEventArgs) Handles richTextBox1.DragEnter
' If the data is text, copy the data to the RichTextBox control.
If e.Data.GetDataPresent("Text") Then
e.Effect = DragDropEffects.Copy
End If
End Sub 'richTextBox1_DragEnter
Private Sub richTextBox1_DragDrop(ByVal sender As Object, ByVal e As DragEventArgs) Handles richTextBox1.DragDrop
' Paste the text into the RichTextBox where at selection ___location.
richTextBox1.SelectedText = e.Data.GetData("System.String", True).ToString()
End Sub 'richTextBox1_DragDrop
[C#]
public Form1()
{
InitializeComponent();
// Sets the control to allow drops, and then adds the necessary event handlers.
this.richTextBox1.AllowDrop = true;
}
private void listBox1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
// Determines which item was selected.
ListBox lb =( (ListBox)sender);
Point pt = new Point(e.X,e.Y);
//Retrieve the item at the specified ___location within the ListBox.
int index = lb.IndexFromPoint(pt);
// Starts a drag-and-drop operation.
if(index>=0)
{
// Retrieve the selected item text to drag into the RichTextBox.
lb.DoDragDrop(lb.Items[index].ToString(), DragDropEffects.Copy);
}
}
private void richTextBox1_DragEnter(object sender, DragEventArgs e)
{
// If the data is text, copy the data to the RichTextBox control.
if(e.Data.GetDataPresent("Text"))
e.Effect = DragDropEffects.Copy;
}
private void richTextBox1_DragDrop(object sender, DragEventArgs e)
{
// Paste the text into the RichTextBox where at selection ___location.
richTextBox1.SelectedText = e.Data.GetData("System.String", true).ToString();
}
[C++]
public:
Form1()
{
InitializeComponent();
// Sets the control to allow drops, and then adds the necessary event handlers.
this->richTextBox1->AllowDrop = true;
}
private:
void listBox1_MouseDown(Object* sender, System::Windows::Forms::MouseEventArgs* e)
{
// Determines which item was selected.
ListBox* lb =( dynamic_cast<ListBox*>(sender));
Point pt = Point(e->X,e->Y);
//Retrieve the item at the specified ___location within the ListBox.
int index = lb->IndexFromPoint(pt);
// Starts a drag-and-drop operation.
if(index>=0)
{
// Retrieve the selected item text to drag into the RichTextBox.
lb->DoDragDrop(lb->Items->Item[index]->ToString(), DragDropEffects::Copy);
}
}
void richTextBox1_DragEnter(Object* /*sender*/, DragEventArgs* e)
{
// If the data is text, copy the data to the RichTextBox control.
if(e->Data->GetDataPresent(S"Text"))
e->Effect = DragDropEffects::Copy;
}
void richTextBox1_DragDrop(Object* /*sender*/, DragEventArgs* e)
{
// Paste the text into the RichTextBox where at selection ___location.
richTextBox1->SelectedText = e->Data->GetData(S"System.String", true)->ToString();
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
参照
RichTextBox クラス | RichTextBox メンバ | System.Windows.Forms 名前空間