C1TrueDBGridコントロール「C1TrueDBGrid2」の設定
続いて、データのドロップを受け取るC1TrueDBGridコントロール「C1TrueDBGrid2」の設定を行います。こちらは、データベース「都立図書館リスト_Data.mdf」のテーブル「編集用テーブル」を連結します。
(1)スマートタグから「データベースの選択」をクリックし、「プロジェクトデータソースの追加」をクリックします。データソース構成ウィザードが起動しますので、順番に「データベース」「データセット」を選びます。
(2)「データ接続の選択」ページに移りますので、接続文字列はそのままで「次へ」ボタンをクリックします。
(3)テーブル「編集用テーブル」をクリックし、「データセット名」を「都立図書館リスト_編集用テーブル_DataDataSet」に変更し「完了」ボタンをクリックします。
(4)もう一度スマートタグを開き、「VisualStyle」を「Office2007Black」にし、「行の色を互い違いにする」と「削除を有効にする」をクリックします。
そして、プロパティウィンドウで次のプロパティを設定します。
| プロパティ | 設定値 |
| AllowDrop | True |
| BlackColor | 192, 255, 192 |
| BorderStyle | Fixed3D |
| FlatStyle | Standard |
| EvenRowStyle - BackColor | Bisque |
AllowDropプロパティをTrueにすると、C1TrueDBGridコントロールはドロップ機能が有効になり、データを受け取ることができるようになります。
(5)DragEnter・DragDropイベントハンドラを作成します。
実行コードの作成
フォームが作成できたら、ドラッグ&ドロップの機能を実装します。
コードは、ドラッグ側のC1TrueDBGridコントロールではMouseDown・MouseMoveイベントハンドラに、ドロップ側のC1TrueDBGridコントロールではDragEnter・DragDropイベントハンドラに、それぞれの処理を組み込みます。
グリッドの列幅調整の処理
最初に、フォームのLoadイベントハンドラで2つのグリッドの列幅調節を行います。ドラッグ側のグリッドは列幅をセルのコンテンツに合わせ、ドロップ側のグリッドの列幅は、ドラッグ側の列幅に合わせます。
そして、前回ドラッグアンドドロップしたデータが残っている場合に備え、ドロップ側のグリッドデータを消去します。
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
'TODO: このコード行はデータを '都立図書館リスト_編集用テーブル_DataDataSet.編集用テーブル' テーブルに読み込みます。必要に応じて移動、または削除をしてください。
'C1TrueDBGrid2用データベース
Me.編集用テーブルTableAdapter.Fill(Me.都立図書館リスト_編集用テーブル_DataDataSet.編集用テーブル)
'TODO: このコード行はデータを '都立図書館リスト_DataDataSet.図書館一覧' テーブルに読み込みます。必要に応じて移動、または削除をしてください。
'C1TrueDBGrid1用データベース
Me.図書館一覧TableAdapter.Fill(Me.都立図書館リスト_DataDataSet.図書館一覧)
'C1TrueDBGrid1の列幅を自動調節
Dim i As Integer
For i = 0 To 4
C1TrueDBGrid1.Splits(0, 0).DisplayColumns(i).AllowSizing = True
C1TrueDBGrid1.Splits(0, 0).DisplayColumns(i).AutoSize()
Next
'C1TrueDBGrid2の列幅をC1TrueDBGrid1の列幅に合わせる
For i = 0 To 4
C1TrueDBGrid2.Splits(0, 0).DisplayColumns(i).AllowSizing = True
C1TrueDBGrid2.Splits(0, 0).DisplayColumns(i).Width = C1TrueDBGrid1.Splits(0, 0).DisplayColumns(i).Width
Next
'グリッドデータが残っている場合は削除する
Me.都立図書館リスト_編集用テーブル_DataDataSet.編集用テーブル.Clear()
End Sub
private void Form1_Load(object sender, EventArgs e)
{
// TODO: このコード行はデータを '都立図書館リスト_編集用テーブル_DataDataSet.編集用テーブル' テーブルに読み込みます。必要に応じて移動、または削除をしてください。
this.編集用テーブルTableAdapter.Fill(this.都立図書館リスト_編集用テーブル_DataDataSet.編集用テーブル);
// TODO: このコード行はデータを '都立図書館リスト_DataDataSet.図書館一覧' テーブルに読み込みます。必要に応じて移動、または削除をしてください。
this.図書館一覧TableAdapter.Fill(this.都立図書館リスト_DataDataSet.図書館一覧);
//C1TrueDBGrid1の列幅を自動調節
int i ;
for(i=0;i<=4;i++)
{
c1TrueDBGrid1.Splits[0, 0].DisplayColumns[i].AllowSizing = true;
c1TrueDBGrid1.Splits[0, 0].DisplayColumns[i].AutoSize();
}
//C1TrueDBGrid2の列幅をC1TrueDBGrid1の列幅に合わせる
for(i=0;i<=4;i++)
{
c1TrueDBGrid2.Splits[0, 0].DisplayColumns[i].AllowSizing = true;
c1TrueDBGrid2.Splits[0, 0].DisplayColumns[i].Width = c1TrueDBGrid1.Splits[0, 0].DisplayColumns[i].Width;
}
// グリッドデータが残っている場合は削除する
this.都立図書館リスト_編集用テーブル_DataDataSet.Clear();
}


