2

列を持つデータグリッドビューがあります

col A | col B | ... | col M | col N 

col Nここで、ユーザーが datagridview を水平方向にスクロールすると、列 A、...、M を水平方向にスクロールできますが、凍結したままになるように、右側でフリーズしたいと考えていますcol N

今、Frozen属性を設定しようとしましcol Nたが、固定された列の左側にあるすべての列も固定されています。これは望ましくありません。私が思いついた最善の方法は、DataGridView にバインドされた DataTable の列を逆にして、順序が変わるようにすることです。

col N | col M | ... | col B | col A

RightToLeft次に、列が再び逆になり、次のように表示されるように DataGridView を描画します

col A | col B | ... | col M | col N 

私が試した別の解決策は、凍結する必要がある右端の列を抽出し、それらを右側の別の DataGridView に配置し、残りの列を元の DataGridView に配置してから、両方の垂直スクロールを同期することです。今私の質問は、これを行うためのより良い方法はありますか?

または言い換えれば:

他の列を凍結せずに、datagridview の右側の列を凍結するにはどうすればよいですか?

4

1 に答える 1

1

joe さん、C# ではDataGridView、Excel と同じように、テーブルの先頭でのみ、テーブルの中央に列を固定できます。中央の列を固定すると、側面でどのように反応するかがわからないため、これは理にかなっています。異なる側に 2 つのスクロール バーが必要ですか?

ここから、これが c# の望ましい動作であることがわかります。

列が固定されると、その左側 (または右から左へ記述する言語では右側) のすべての列も固定されます。固定された列と固定されていない列は 2 つのグループを形成します。AllowUserToOrderColumns プロパティを true に設定して列の再配置を有効にした場合、ユーザーは列を 1 つのグループから別のグループにドラッグできません。

于 2013-07-29T12:42:22.380 に答える