3

私は DataGridView コントロールを備えた winforms アプリに取り組んでおり、イライラすることがいくつかあります。

まず、AutoColumnGeneration をオフにしたいのですが、プロパティにリストされていません。問題ありません。コード行でそれを行うことができます...そして、これが奇妙なところです:

  1. 私のコードでは、DataGridView にアクセスできません。フォームに存在しないようです。これを調べると、デザイナーが他のすべてのコントロールを初期化する場所ではなく、InitializeComponent() メソッドの一部として宣言しているためです。

  2. デザイナーにあるため、そこで行った変更は元に戻されるため、修正できません。

ビジュアルスタジオがこれを行うのを止める方法はありますか? データグリッド列の1つ(アクセス可能)を使用して、関連付けられているデータグリッドビューへの参照を作成し、その方法でアクセスすることで、ハックを見つけました。それは機能しますが、醜く、まったく直感的ではありません。

4

3 に答える 3

2

私はそれを見つけたと思います:

デザイナーで DataGridView コントロールをクリックし、プロパティGenerateMemberを true に変更します。falseに設定されていると思います。

このプロパティは、コード ウィンドウからコントロールを非表示にするために使用されます。コードで処理する必要のないラベルまたは ToolStripSeparators に役立ちます。

于 2013-05-14T16:16:54.143 に答える
0

私は個人的にバインド ソースをデータ ソースとして使用します。これはオブジェクトにすることもできます。列の下に使用可能なすべての列が一覧表示され、どの列を表示するかを選択したり、書式設定を含む他の多くのオプションを選択したりできます。

データソースのドロップダウンをクリックし、新しいデータ ソースを追加して、必要なオブジェクト (私の場合は注文詳細オブジェクト) を選択します。これは、VS2010 で作成された私のデザイナー コードの一部です。

this.dgvOrderDetails.DataSource = this.orderDetailBindingSource;
this.orderDetailBindingSource.DataSource = typeof(OrderDetail);

そして、datagridview を満たすようにデータを設定するバインディング ソース コード (この部分をコーディングしました)

orderDetailBindingSource.DataSource = orderDetList;

次に、datagridview の Columns プロパティの省略記号をクリックするだけで、オブジェクトから使用できるすべての列が一覧表示され、表示したい列、順序、形式などを設定します。

2 番目の問題については、デザイナーを使用して上記の変更を加えれば、その問題は発生しないと思います。

于 2013-05-14T15:20:48.337 に答える