Comments
Description
Transcript
ドラッグ&ドロップ機能を 実装してみよう
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● ●●●●● ●●●● ●●●●● 作って学ぶ ● ● ● ●Visual Basic .NET ●●●●● ●●●● ●●●●● ●●●● ●●●●● ●●●● ●●●●● ●●●● ●●●●● ●●●● ●●●●● ●●●● ●●●●● ●●●● ●●●●● ●●●● 瀬戸 遥 ●●●●● SETO, Haruka ●●●● http://www.big.or.jp/ ~ seto/ ●●●●● http://hp.vector.co.jp/authors/VA006682/ ●●●● ●●●●● ●●●● ●●●●● ●●●● ●●●●● ●●●● ●●●●● ●●●● ●●●●● ●●●● そこで、今月はテキストデータを ●●●●● Technology Tools ●●●● ドラッグ&ドロップする機能をプ ●●●●● ✓ Visual Basic .NET ●●●● ログラムに実装する基本的な方法 ●●●●● Visual C# .NET ●●●● 今月は、ドラッグ&ドロップを について紹介します。 SQL Server 2000 ●●●●● 使ったプログラムにチャレンジして ●●●● Oracle 9i ●●●●● みます。 ●●●● Access 2002 ●●●●● ご存知のとおり、ドラッグ&ド ASP.NET ●●●● ●●●●● Internet Information Services ロップとは、マウスを使ってデータ ●●●● Other : ●●●●● を移動して、いろいろな処理を実 ●●●● はじめに、ひとつのアプリケーシ 行する操作です。 ●●●●● Level ●●●● ョン内でドラッグ&ドロップ操作 この操作には、 「アプリケーショ ●●●●● ●●●● ン内でのドラッグ&ドロップ」と、 を行なう方法についてまとめてお ●●●●● ●●●● きます。 「アプリケーション間でのドラッ Samples ●●●●● ドラッグ&ドロップ機能を実装 グ&ドロップ」という2種類があり ●●●● ・この記事で取り上げたソースコードおよび ●●●●● サンプルプログラムは、付録CD-ROMの するには、データをドラッグする側 ます。 ●●●● ¥DOTNET¥TAMAHIYO ディレクトリ ●●●●● に収録しています。 と、データがドロップされる側のコ このようなドラッグ&ドロップ操 ●●●● ¥DRAGDROP ●●●●● ントロールで次の処理を行ないま 作を実現するには、データを送る 今回のサンプル ●●●● ●●●●● す。 (ドラッグする)側と受け取る(ド ●●●● ロップされる)側にそれぞれ処理が ●●●●● ●●●● ●データをドラッグする側 必要になります。 ●●●●● ●●●● マウスイベントなどを使って、Do また、ドラッグ&ドロップで受け ●●●●● ●●●● DragDropメソッドを実行します。 渡すデータにはいろいろな種類が ●●●●● このメソッドは、ドラッグ&ドロッ あり、それを事前に指定する必要 ●●●● ●●●●● プ 操作を開始するメソッドです。 があります。 ●●●● ●●●●● ●●●● ●●●●● ●●● ●●● ●● ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● ●●●●●● 94● dotNET Magazine 2005 April ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● 作って学ぶ Visual Basic .NET 最終回 ドラッグ&ドロップ機能を 実装してみよう 2種類のドラッグ &ドロップ ひとつの アプリケーション に実装する ★ ★ ★ ★ ★ ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● ●●●● ドラッグ&ドロップ機能を実装してみよう ● ● ● ●●●● ●●● ●●●● ●●● ●●●● ●●● ●●●● ●●● 図1:ドラッグ&ド 引数にドラッグするデータ形式や、データをコピーする ●●●● ロップでLabelコン ●●● のか移動するのかなどのドラッグ&ドロップ操作の効果 トロールに表示 ●●●● ●●● を指定します。 ●●●● ●●● ●●●● ●●● ●データがドロップされる側 ●●●● まず、データを受け取るコントロールの、AllowDrop ●●● ●●●● プロパティをTrueにします。このプロパティをTrueに ●●● ●●●● すると、コントロールはデータを受け入れることができ ●●● ●●●● るようになります。これはプロパティウィンドウで設定 ●●● 可能です。 ●●●● ●●● ここで作成するのは、TextBoxコントロールに入力さ ●●●● ●●● れたデータを、ドラッグ&ドロップでLabelコントロー DragEnterイベント ●●●● ●●● ルに表示するプログラムです(図1) 。 続いて、DragEnterイベントで、データが受け入れら ●●●● ●●● れる形式のものなのかをチェックするコードを記述しま ●●●● ●コントロールの配置 す。 ●●● ●●●● フォームにTextBoxコントロールとLabelコントロー DragEnterイベントは、ユーザーがドラッグ&ドロッ ●●● ●●●● ルを配置します。 プ操作を開始し、最初にマウスカーソルをコントロール ●●● ●●●● そして、プロパティウィンドウでLabelコントロール 上にドラッグすると発生します。このイベントプロシー ●●● のAllowDrop プロパティをTrue にします。これで、 ジャの引数DragEventArgsを使い、DataObjectクラス ●●●● ●●● Labelコントロールはデータのドロップを受け入れるこ のGetDataPresentメソッドで、ドロップされたデータ ●●●● ●●● とができるようになります。 が、指定した形式に関連付けられているかどうかを確認 ●●●● ●●● します。確認後、ドラッグ&ドロップ操作のターゲット ●●●● ●●● ●ドラッグする側(TextBox) のドロップ効果を設定します。 ●●●● 次に、データをドラッグするTextBoxコントロールの ●●● ●●●● 処理を作成します。 DragDropイベント ●●● ●●●● ここでは、MouseLeaveイベントを使い、Textプロパ 受け入れられるデータであることを確認できたら、 ●●● ●●●● ティに格納されているデータをすべて一括でLabelコン DragDropイベントでデータを処理します。 ●●● トロールにドロップするようにします。もちろん、プロ DragDropイベントは、ドラッグ&ドロップ操作が完 ●●●● ●●● グラムの機能によっては、MouseDownなど他のマウス 了したときに発生します。このイベントプロシージャの ●●●● ●●● イベントを使ってドラッグ処理を実行してもかまいませ 引数「DragEventArgs」と、DataObjectクラスのGet ●●●● ●●● ん。 Dataメソッドを使うことで、ドロップされたデータを受 ●●●● ●●● では早速、MouseLeaveイベントプロシージャを作成 け取ることができます。 ●●●● してみましょう。 ●●● ●●●● ●●● Private Sub TextBox1_MouseLeave(ByVal sender As Object, _ ●●●● ByVal e As System.EventArgs) Handles ●●● ●●●● TextBox1.MouseLeave ●●● 早速、ドラッグ&ドロップ操作でテキストデータをコ ●●●● End Sub ●●● ピーするプログラムを作ってみましょう。 ●●●● ●●● ●●●● ●●● ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● ● ●Magazine ● ● ●2005 ●● ● ●95● ● ● ● ● ● dotNET April ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●● テキストデータの ドラッグ&ドロップ