True DBGrid for WinForms
データベースの操作
エンドユーザーの操作 > データベースの操作

実行時にユーザーに許可される編集、削除、および追加の権限は、AllowUpdate, AllowDelete, AllowAddNew の各プロパティによって制御されます。これらのプロパティのデフォルト値を次に示します。

プロパティ デフォルト値
AllowUpdate True
AllowDelete False
AllowAddNew False

これらのプロパティは、実行時のユーザーによるグリッドの操作を制御するだけであることに注意してください。DataSet などの連結コントロールやアプリケーションのコードによってデータベースを操作できるかどうかは制御しません。

データを編集する

グリッドのデータを編集するには、C1TrueDBGridAllowUpdate プロパティを True に設定する必要があります。デフォルト値は True です。

ユーザーがセルに移動して入力を開始すると、セルのデータは入力された内容に置き換えられます。また、現在のセル内をクリックするとグリッドが編集モードになり(EditActive プロパティが True)、ユーザーがセルのデータを変更できるようになります。

編集中は、[←] キーや [→] キーを使用して、セル内でカーソルを移動できます。カーソルがセルのテキストの先頭または末尾にある場合に[←] キーまたは [→] キーを使用すると、編集を終了して隣のセルに移動できます。 [↑] キーまたは [↓]キーを使用すると、編集を終了し、現在の行の1つ上または下の行のセルに移動できます。また、[Enter] キーを押すと、現在のセルから移動せずに編集を終了できます。

行内の1つ以上のセルが変更されると、レコードセレクタ列に鉛筆アイコンが表示され、行内のデータが変更されたことを示します。鉛筆アイコンは、グリッドの EditActive プロパティが True であることを意味するのではありません。これは、グリッドの DataChanged ロパティが True であることを意味します。現在のセルに対して行われた変更を取り消すには、[Esc] キーを押します。また、別の行に移動する前であれば、現在の行内の任意の列に再度移動して [Esc]キーを押すと、そのセルを元の値に復元できます。行内にある変更されたすべてのセルでこの手順を繰り返すと、レコードセレクタの鉛筆アイコンは消えます。

別の行をクリックしたり、[↑] キーまたは [↓] キーを押して別の行に移動すると、変更されたレコードに基づいてデータベースが更新されます。正しく更新が行われると、鉛筆アイコンは消えます。どのグリッド列も変更されていない場合は、行を移動しても更新は行われません。

新しいレコードを追加する

グリッドに新しいレコードを対話式に追加するには、C1TrueDBGridAllowAddNew プロパティを True に設定する必要があります。デフォルト値は False です。

AllowAddNew プロパティが True の場合は、最後のレコードの後に、レコードセレクタ列にアスタリスク(*)で示される空の AddNew 行が表示されます。追加操作を開始するには、AddNew 行をクリックするか[↓] キーを使ってAddNew行に移動し、新しいデータを入力します。最初の文字を入力すると、AddNew 行の前に空の行が挿入されます。新しく挿入された空の行が現在の行になり、グリッドはOnAddNew イベントを発生します。

この時点で、新しい行はグリッド内にだけ存在します。この行にはブックマークがなく、まだ物理データベースレコードを表していません。他のデータ行または AddNew 行に移動すると、新しい行が基礎データソースに追加されます。 

レコードを削除する

グリッドを使ってレコードを削除するには、C1TrueDBGridAllowDelete プロパティを True に設定する必要があります。デフォルト値は False です。

レコードを削除するには、ユーザーは、レコードセレクタをクリックして削除する行を選択し、次に [Del] キーを押します。一度に削除できるレコードは1つだけです。複数のレコードを選択して [Del] キーを押しても、選択したレコードをすべて削除することはできません。

レコードを削除するには、グリッドが [Del]キーを受け取ることができるように、グリッドにフォーカスがある必要があります。グリッドのレコードセレクタの列をクリックしても、グリッドにフォーカスを与えることにはなりません。ただし、ユーザーがレコードセレクタの列をクリックしたときに必ずグリッドにフォーカスが移動するようにする場合は、次のコード例のように、グリッドのSelChange イベントでグリッドにフォーカスを与えます。

C#
コードのコピー
private void C1TrueDBGrid1_SelChange(object sender, C1.Win.C1TrueDBGrid.CancelEventArgs e)
{
    this.c1TrueDBGrid1.Focus();
}