2017-03-14 22 views
0

私はwinform vb netプロジェクトで次のことを実装しようとしています(この作業はdelphiで書かれたアプリケーションでご覧になれます)。データグリッドビューで部分的に表示されない行を表示しない

dgvに部分的に表示され、塗りつぶされている最下行の表示を非表示にするか、falseに設定したいとします。 私はこのような何かを実装しようとした:

DataGridView1.Rows(DataGridView1.DisplayedRowCount(true) - 1).Visible = False 

私はそれがDataBindingCompleteとリサイズ/スクロールイベント中に呼び出されるべきだと思うが、それは動作しません。

アイデアやソリューションはありますか?

+0

これはスクロールイベントでは必ず実行する必要があるため、ユーザーがスクロールするたびに表示する行を更新する必要があります。これを言って、私はこれがグリッドの速度を遅くすると思う。おそらく、部分行の下にあるすべての行を隠す代わりに、部分行にペイントしてみてください –

答えて

0

それでは、私は私のdatagridviewsのいずれかを使用することです:

Dim ind As Integer = 0 
    ind = DataGridView1.Rows.Count - 1 
    DataGridView1.Rows(ind).Visible = False 

のDataGridViewの最後に表示された行を隠しています。

0

要件は多少奇妙です。あなたのコメント「埋めるためにドッキングされたdgvで部分的に見える最下行の虚偽を表示しないようにする」 ...これが最後の行であることをどのように知っているのだろうか?最後の行の下に行がさらに表示されている可能性はありますか?スクロールバーが使用可能な場合は、行が境界ボックスを超えている場合はスクロールバーが表示されます。行の1つがバウンディングボックスで半分にカットされ、この行の下に1行以上ある場合、その行を非表示/非表示/削除するだけで、次の行が上に移動します。

DataGridViewがドッキングされているため、バウンディングボックスで行を分割しないようにするには、手動で行のサイズを変更する必要があります。もう1つの解決策は、DataGridViewAutoSizeRowsModeを使用することです。

dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCells; 

これは、行が境界ボックスの下部にない場合に行がチョップされないように行を設定します。行は均等にフィットするように自動的にサイズが変更されます。AutoSizeRowsModeオプションは7つありますが、そのうちの1つがあなたの探していることを実行していると推測しています。私はDisplayedCellsあなたが何を記述するために動作することを推測しています。グリッドのサイズを頻繁に変更する場合は、この行のサイズ変更を実装する必要があります。お役に立てれば。

関連する問題