人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

VS2005 VBでDatagridviewのセルの内容をドラックしてボタンの上でドロップした後、ボタンの名前がセルの内容にしたいです。参考になるサンプルをご存知でしょうか。

よろしくお願いします。

●質問者: mai_mai_mail
●カテゴリ:コンピュータ インターネット
✍キーワード:VB セル ドラック ドロップ ボタン
○ 状態 :キャンセル
└ 回答数 : 1/1件

▽最新の回答へ

1 ● rsc

こちらは参考になるでしょうか。Form1にボタンとDataGridViewを設置して、列を2行作って置いて下さい。

Public Class Form1

 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  'Button1へのドロップを受け入れる ※プロパティーで設定してもよい
 Button1.AllowDrop = True

 DataGridView1.ColumnCount = 3
 DataGridView1.RowCount = 3
 DataGridView1.Item(0, 0).Value = "a"
 DataGridView1.Item(0, 1).Value = "b"
 DataGridView1.Item(1, 0).Value = "c"
 DataGridView1.Item(1, 1).Value = "d"
 End Sub

 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  'Button1.BackColor = SystemColors.Highlight
  'Button1.BackColor = Color.Gold
 Button1.Text = "abc"
 End Sub

  'DataGridView1でマウスボタンが押された時
 Private Sub DataGridView1_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles DataGridView1.MouseDown
  'マウスの左ボタンだけが押されている時のみドラッグできるようにする
 If e.Button = MouseButtons.Left Then
  'ドラッグの準備
 Dim dgv As DataGridView = CType(sender, DataGridView)

  '指定された(クリックされた)座標位置の情報を取得する
 Dim hti As System.Windows.Forms.DataGridView.HitTestInfo = dgv.HitTest(e.X, e.Y)

  'ドラッグするセルの内容を取得する
 Dim strText As String = dgv.Item(hti.RowIndex, hti.ColumnIndex).Value.ToString()
  'ドラッグ&ドロップ処理を開始する
 dgv.DoDragDrop(strText, DragDropEffects.All)
 End If
 End Sub

  'Button1内にドラッグされた時
 Private Sub Button1_DragEnter(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Button1.DragEnter
  'ドラッグされているデータがstring型か調べ、
  'そうであればドロップ効果をCopyにする
 If e.Data.GetDataPresent(GetType(String)) Then
 e.Effect = DragDropEffects.Copy
 Else
  'string型でなければ受け入れない
 e.Effect = DragDropEffects.None
 End If
 End Sub

  'Button1にドロップされたとき
 Private Sub Button1_DragDrop(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Button1.DragDrop
  'ドロップされたデータがstring型か調べる
 If e.Data.GetDataPresent(GetType(String)) Then
  'ドロップされたデータ(string型)を取得
 Dim strText As String = CStr(e.Data.GetData(GetType(String)))
  'ドロップされたデータをリストボックスに追加する
 Button1.Text = strText
 End If
 End Sub
End Class

※参考URL

●Drag&Drop(ドラッグ&ドロップ)を行う: .NET Tips: C#, VB.NET ...

http://dobon.net/vb/dotnet/control/draganddrop.html

●ドラッグ アンド ドロップ操作の実行

http://msdn.microsoft.com/ja-jp/library/ms973845.aspx

●DataGridView.HitTestInfo クラス

http://msdn.microsoft.com/ja-jp/library/system.windows.forms.dat...(VS.80).aspx

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ