作成日: 2021/09/07 最終更新日: 2021/09/07
文書種別
使用方法
詳細
■コントロール内でのドラッグ&ドロップ
(1)AllowDraggingプロパティを設定する方法
C1FlexGridでは、AllowDraggingプロパティをAllowDraggingEnum.Rowsに設定することで、行ヘッダのドラッグで行を移動することができます。
製品ヘルプの[行 > ユーザー操作]に記載の「ドラッグを許可する(Allow Dragging)」についてもご参照ください。
C1FlexGrid1.AllowDragging = C1.Win.C1FlexGrid.AllowDraggingEnum.Rows◎サンプルコード(C#)
c1FlexGrid1.AllowDragging = C1.Win.C1FlexGrid.AllowDraggingEnum.Rows;
(2)DragModeプロパティとDropModeプロパティをAutomaticに設定する方法
DragModeプロパティとDropModeプロパティをAutomaticに設定することで、コントロール内でのドラッグ&ドロップ操作が可能になります。
※セル(またはセル範囲)を選択後、選択場所の周辺でマウスを移動すると「+」記号が表示され、ユーザーは、データを移動またはコピーできます。(コピーする場合はCtrlキーを押下してください)

◎サンプルコード(VB)
C1FlexGrid1.DragMode = C1.Win.C1FlexGrid.DragModeEnum.Automatic◎サンプルコード(C#)
C1FlexGrid1.DropMode = C1.Win.C1FlexGrid.DropModeEnum.Automatic
c1FlexGrid1.DragMode = C1.Win.C1FlexGrid.DragModeEnum.Automatic;
c1FlexGrid1.DropMode = C1.Win.C1FlexGrid.DropModeEnum.Automatic;
■コントロール間のドラッグ&ドロップ
ドラッグを開始するC1FlexGridコントロールのDragModeプロパティをAutomaticに設定し、ドロップするC1FlexGridコントロールのDropModeプロパティをAutomaticに設定することで、コントロール間でのセル(またはセル範囲)のドラッグ&ドロップを実現できます。
※Ctrlキーを押下しながらドラッグした場合にはコピー操作になり、Ctrlキーを押下しない場合は移動操作になります。
◎サンプルコード(VB)
' ドラッグを開始するC1FlexGridのDragModeプロパティをAutomaticに設定◎サンプルコード(C#)
C1FlexGrid1.DragMode = C1.Win.C1FlexGrid.DragModeEnum.Automatic
' ドロップするC1FlexGridのDropModeプロパティをAutomaticに設定
C1FlexGrid2.DropMode = C1.Win.C1FlexGrid.DropModeEnum.Automatic
// ドラッグを開始するC1FlexGridのDragModeプロパティをAutomaticに設定
c1FlexGrid1.DragMode = C1.Win.C1FlexGrid.DragModeEnum.Automatic;
// ドロップするC1FlexGridのDropModeプロパティをAutomaticに設定
c1FlexGrid2.DropMode = C1.Win.C1FlexGrid.DropModeEnum.Automatic;
■異なるForm間のドラッグ&ドロップ
上記(コントロール間の行のドラッグ&ドロップを行う場合)と同様、ドラッグを開始するC1FlexGridコントロールのDragModeプロパティをAutomaticに設定し、ドロップするC1FlexGridコントロールのDropModeプロパティをAutomaticに設定することで、異なるForm間でのセル(またはセル範囲)のドラッグ&ドロップが実現できます。
◎サンプルコード(VB)
[Form1.vb]◎サンプルコード(C#)
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' 値の設定
C1FlexGrid1(1, 1) = 1
C1FlexGrid1(2, 1) = 2
C1FlexGrid1(3, 1) = 3
C1FlexGrid1(1, 2) = "B1"
C1FlexGrid1(2, 2) = "B2"
C1FlexGrid1(3, 2) = "B3"
' ドラッグ開始操作の許可
C1FlexGrid1.DragMode = C1.Win.C1FlexGrid.DragModeEnum.Automatic
' Form2の表示
Dim f2 As New Form2()
f2.Show()
End Sub
End Class
[Form2.vb]
Public Class Form2
Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' ドロップ操作の許可
C1FlexGrid1.DropMode = C1.Win.C1FlexGrid.DropModeEnum.Automatic
End Sub
End Class
[Form1.cs]
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// 値の設定
c1FlexGrid1[1, 1] = 1;
c1FlexGrid1[2, 1] = 2;
c1FlexGrid1[3, 1] = 3;
c1FlexGrid1[1, 2] = "B1";
c1FlexGrid1[2, 2] = "B2";
c1FlexGrid1[3, 2] = "B3";
// ドラッグ開始操作の許可
c1FlexGrid1.DragMode = C1.Win.C1FlexGrid.DragModeEnum.Automatic;
// Form2の表示
Form f2 = new Form2();
f2.Show();
}
}
[Form2.cs]
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void Form2_Load(object sender, EventArgs e)
{
// ドロップ操作の許可
c1FlexGrid1.DropMode = C1.Win.C1FlexGrid.DropModeEnum.Automatic;
}
}