dataGridViewに行を追加することで、毎秒自動的に更新されるデータを表示するためのdataGridViewを使用するプログラムがあります。DataGridView:スクロールが最下部にある場合にのみスクロールします。
冒頭で何かを読んでいたら、スクロールアップし、データが更新されてもスクロールバーが下がらなくてもいいです。しかし、私はスクロールバーがdataGridViewの一番下にあるときだけ下に移動したい。
新しい行がテキストに追加されたときに、私が欲しいの行動:スクロールバーが一番下にある
場合、自動的にスクロールします。 スクロールバーが他の場所にある場合は、スクロールしないでください。
私はこれのために書かれていると、残念ながら動作しないコードは次のとおりです。最後の行が表示し、それならばであるかどうかをチェックしたがって、基本的
int firstDisplayed = liveDataTable.FirstDisplayedScrollingRowIndex;
int displayed = liveDataTable.DisplayedRowCount(true);
int lastVisible = (firstDisplayed + displayed) - 1;
int lastIndex = liveDataTable.RowCount - 1;
liveDataTable.Rows.Add(); //Add your row
if(lastVisible == lastIndex)
{
liveDataTable.FirstDisplayedScrollingRowIndex = firstDisplayed + 1;
}
:
private void liveDataTable_Scroll(object sender, ScrollEventArgs e)
{
ScrollPosition = liveDataTable.FirstDisplayedScrollingRowIndex;
if (ScrollPosition == liveDataTable.RowCount - 1)
{
IsScrolledToBottom = true;
}
else
{
IsScrolledToBottom = false;
}
}
public void AddRowToDataGridMethod()
{
dataTable.Rows.Add();
if (dataWin.IsScrolledToBottom == true)
dataWin.LiveDataTable.FirstDisplayedScrollingRowIndex = (dataWin.ScrollPosition + 1);
else
dataWin.LiveDataTable.FirstDisplayedScrollingRowIndex = dataWin.ScrollPosition;
}
この質問を見てみましょう:http://stackoverflow.com/questions/378330/how-can-i-set-the-position-of-my-datagrid-scrollbar-in- my-winforms-app あなたの問題を解決するはずです。 – jAC
[C#DataGridViewの下部にスクロール]の複製が可能です(http://stackoverflow.com/questions/9969061/scroll-to-bottom-of-c-sharp-datagridview) –