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

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

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

No.55067 の関連記事表示

<< 0 >>
■55067  Re[1]: DataGridViewの複数セル選択について
□投稿者/ 魔界の仮面弁士 -(2010/11/16(Tue) 13:57:29)
    2010/11/16(Tue) 13:57:51 編集(投稿者)

    No55062 (チョーさん さん) に返信
    > 複数セルの内容をドラッグで他のコントロールに持っていけるようにするため、
    ドラッグでの範囲選択と、選択範囲のドラッグの両方を実現したいなら、
    処理を単純化するために、
     「セルの選択は左ボタン」
     「ドラッグは右ボタン」
    という仕様にしてしまうのが簡単かと。


    > 現状では、複数セルが選択状態の時、任意の選択セルをマウスダウンした時点で、
    > 選択状態が変わり、マウスダウンしたセルのみの選択になってしまいます。

    どのようなコードになっていますか?


    '手抜きコードなので、マウスドラッグでの選択はできません。
    '複数選択には Ctrl や Shift キーを併用して行ってください。
    Public Class Form1

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
    DataGridView1.AllowUserToAddRows = False
    DataGridView1.ColumnCount = 10
    DataGridView1.RowCount = 20
    DataGridView1.EditMode = DataGridViewEditMode.EditProgrammatically
    DataGridView1.MultiSelect = True
    End Sub

    Private Sub DataGridView1_MouseDown(ByVal sender As Object, _
    ByVal e As MouseEventArgs) Handles DataGridView1.MouseDown
    '実際に組み込む際には、SystemInformation.DragSize でのドラッグ開始判定や
    'クリックされた位置(ヘッダーは除外するなど)も判定条件に加えておいた方が良いかも。
    If CBool(e.Button And MouseButtons.Left) Then

    '選択されたセルの一覧
    Dim s As New List(Of String)()
    For Each c As DataGridViewCell In Me.DataGridView1.SelectedCells
    s.Insert(0, String.Format("{0}-{1}", c.RowIndex, c.ColumnIndex))
    Next

    '(テキストデータにしてあるので、メモ帳等にドロップしてください)
    DataGridView1.DoDragDrop(Join(s.ToArray(), vbCrLf), DragDropEffects.All)
    End If
    End Sub
    End Class
記事No.55062 のレス /過去ログ92より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -