최근 DevExpress 컨트롤을 사용하는 winform 프로젝트가 있어서 최근 이 컨트롤 세트의 사용을 탐색하고 있습니다. 전체 컨트롤 세트의 성능에 정말 감탄하고 코드도 작성하기 쉽습니다. 고객은 보고서 결과가 외부 대형 화면에서 정기적으로 스크롤될 수 있기를 바라는 요구 사항이 있습니다. 이 보고서에 사용하는 컨트롤은 쿼리 결과를 한 화면에 완전히 표시할 수 없습니다. 타이머를 추가하고 GridView가 자동으로 스크롤하여 다음 화면에 정보를 표시하는 시간을 지정합니다.
그런데 동료가 구현한 코드를 보고 조금 불편함을 느꼈습니다. 그의 대략적인 코드는 다음과 같습니다:
/// <summary>/// 当前的行索引/// </summary>private int currentRowHandle = 0;
/// <summary></summary>
/// 总共含有的行
///
private int totalRowCount = 0;
/// <summary>/// 定时器定时事件/// </summary>private void timerScroll_Tick(object sender, EventArgs e) { if (currentRowHandle == totalRowCount) currentRowHandle = 0; else { currentRowHandle += 40; if (currentRowHandle > totalRowCount) currentRowHandle = totalRowCount; } gridView1.FocusedRowHandle = currentRowHandle; }
GridView의 자동 스크롤 기능을 구현하기 위해 코드에서는 2개의 필드를 도입하고 각 스크롤의 행 수를 40으로 하드 코딩합니다. 컨트롤의 크기가 조정되면 한 화면에 40행의 데이터를 표시할 수 없으며 일부 데이터가 전혀 표시되지 않을 수도 있습니다.
DevExpress 매뉴얼을 참조하여 GridView는 이미 페이지 스크롤 효과를 얻기 위해 직접 사용할 수 있는 메서드를 제공하고 있으며 코드는 필드를 도입하지 않고도 여전히 간단하다는 것을 알았습니다. 개선된 코드는 다음과 같습니다.
/// <summary>/// 定时器定时事件/// </summary>/// <param>/// <param>private void timerScroll_Tick(object sender, EventArgs e) { if (gridView1.IsLastRow) { gridView1.MoveFirst(); } else { gridView1.MoveNextPage(); } }
위 내용은 GridView의 자동 스크롤 기능 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!