C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.80842 の関連記事表示

<< 0 >>
■80842  TableLayoutPanel 内でのD&D
□投稿者/ tata -(2016/08/13(Sat) 18:52:54)

    分類:[.NET 全般] 

    VB.NETで
    TableLayoutPanel の別のセル内にListboxを二つ配置しました。
    この状態でListboxにファイルをD&Dすることで
    D&Dしたファイルリストを取得するプログラムを作りたいのですが
    うまくいきません。

    Listbox単体だと以下のコードで取得することができます。



    Private Sub ListBox1_DragEnter(ByVal sender As Object, ByVal e As DragEventArgs) Handles ListBox1.DragEnter

    ' ドラッグ&ドロップされたファイル
    Dim files() As String = CType(e.Data.GetData(DataFormats.FileDrop), String())

    End Sub

    Private Sub ListBox1_DragDrop(ByVal sender As Object, ByVal e As DragEventArgs)

    Call Drag_ent(e)

    End Sub



    Private Sub Drag_ent(ByVal e As DragEventArgs)

    If e.Data.GetDataPresent(DataFormats.FileDrop) Then

    ' ドラッグ中のファイルやディレクトリの取得
    Dim drags() As String = CType(e.Data.GetData(DataFormats.FileDrop), String())

    For Each d As String In drags

    If Not System.IO.File.Exists(d) And Not System.IO.Directory.Exists(d) Then

    ' ファイル以外であればイベント・ハンドラを抜ける
    Return

    End If

    Next

    e.Effect = DragDropEffects.Copy
    End If

    End Sub


    しかしTableLayoutPanel内に入っていると
    D&Dを受け付けなくなります。

    そのため、以下のようにしてTableLayoutPanelにもD&D設定を行ってみたのですが
    DragEnterはうまくいくのですが
    DragDropをどのように設定すれば良いか分かりません。
    どうすれば良いでしょうか?

    Private Sub TableLayoutPanel1_DragEnter(ByVal sender As Object, ByVal e As DragEventArgs) Handles TableLayoutPanel1.DragEnter

    Call Drag_ent(e)

    End Sub

    Private Sub TableLayoutPanel1_DragDrop(ByVal sender As Object, ByVal e As DragEventArgs) Handles TableLayoutPanel1.DragDrop
    '?????????????

    End Sub





親記事 /過去ログ137より / 関連記事表示
削除チェック/

■80843  Re[1]: TableLayoutPanel 内でのD&D
□投稿者/ Azulean -(2016/08/13(Sat) 21:14:36)
    No80842 (tata さん) に返信
    > Private Sub TableLayoutPanel1_DragEnter(ByVal sender As Object, ByVal e As DragEventArgs) Handles TableLayoutPanel1.DragEnter
    (略)
    > Private Sub TableLayoutPanel1_DragDrop(ByVal sender As Object, ByVal e As DragEventArgs) Handles TableLayoutPanel1.DragDrop

    TableLayoutPanel に入っていても、ListBox は ListBox ですから、ListBox1 とか ListBox2 の DragEnter や DragDrop に対して Handles で結びつけてください。
    今のコードは TableLayoutPanel に対するドラッグ&ドロップ処理になってしまっています。
記事No.80842 のレス /過去ログ137より / 関連記事表示
削除チェック/

■80844  Re[2]: TableLayoutPanel 内でのD&D
□投稿者/ tata -(2016/08/13(Sat) 21:31:17)
    ありがとうございます。
    仰るとおり、Handles が抜けているのが原因でした。
    TableLayoutPanel をいじっている間になぜか消えてしまっているようでした。
     
記事No.80842 のレス / END /過去ログ137より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -