2

実行時に TDBGrid コンポーネントを動的に作成する場合、ユーザーがセルの値を編集することを禁止できません。これは、私がこのタイプの動作を達成しようとしている方法です:

TDBGrid *DbGrid = new TDBGrid(Owner);
DbGrid->Options = DbGrid->Options >> dgEditing;

フォーム デザイナーでdgEditingを無効にすると、すべてが正しく機能します。これら2つのケースの違いを見つけることができません。DBGrid セルの編集を無効にするにはどうすればよいですか?

4

3 に答える 3

3

トリックは、次の方法でこれを行うことです。

DbGrid->Options = TDBGridOptions(DbGrid->Options) >> dgEditing

しかし、何が違うのかわかりません。

于 2012-02-15T10:11:59.030 に答える
0

私はついにそれを機能させる方法を見つけました。

dgEditingを trueに設定すると ( DBGridObject Inspector の Options で)、ユーザーはいつでも編集できます。次に、DBGrid->ReadOnly=falseユーザーに編集を許可しない場合を設定します。

個人を設定しようとしても運がありませんでしたDBGrid->Columns->Items[ii]->ReadOnly=false。プログラムはそれを妨げませんでしたが、プログラムに含まれていたものはすべて無視しました。

dgEditing私は最小限のコンポーネントで特別な小さなテスト プログラムを作成し、オブジェクト インスペクタで true に設定するだけで良い結果を得ることができdgEditing、ユーザーが編集できないようにする場合は false に変更しましたが、フルに配置するとプログラム、何かが の動作を妨げましたDBGrid

これDBGrid->ReadOnlyは、他の誰かにとっても回避策になる可能性があります。

于 2016-06-29T18:43:23.740 に答える