2014-10-23 1 views
0

devExpress gridview를 사용하고 있으며 인덱스가있는 행의 높이를 가져 오거나 설정하려고합니다. 예를 들어 50 개의 레코드가있는 gridview가 있는데, 클릭 한 행의 높이를 늘리고 싶습니다. 나는 어디를 클릭하지만 행 높이를 설정할 수없는 rowindex를 얻을 수 있습니다. Windows Forms 응용 프로그램에 대해 devExpress 13을 사용하고 있습니다. 다음과 같은 방법으로, 그리고devExpress Xtragrid : 인덱스 n에있는 rowheight를 가져 오거나 설정하는 방법

public class GridRowZoomHelper 
{ 
    public GridView GridView { get; set; } 

    public int ZoomedRowHeight { get; set; } 
    private int _ZoomedRowHandle; 
    public int ZoomedRowHandle 
    { 
     get 
     { 
      return _ZoomedRowHandle; 
     } 
     set 
     { 

      if (_ZoomedRowHandle == value) 
       return; 
      var prevValue = _ZoomedRowHandle; 
      _ZoomedRowHandle = value; 
      OnZoomedRowHandleChanged(prevValue, value); 
     } 
    } 
    public GridRowZoomHelper(GridView gridView) 
    { 
     GridView = gridView; 
     ZoomedRowHeight = 60; 
     ZoomedRowHandle = GridControl.InvalidRowHandle; 
     GridView.RowClick += GridView_RowClick; 
     GridView.CalcRowHeight += GridView_CalcRowHeight; 
     GridView.ShownEditor += GridView_ShownEditor; 
    } 

    void GridView_ShownEditor(object sender, EventArgs e) 
    { 
     ZoomedRowHandle = GridView.FocusedRowHandle; 
    } 

    void GridView_CalcRowHeight(object sender, RowHeightEventArgs e) 
    { 
     if (e.RowHandle == ZoomedRowHandle) 
      e.RowHeight = ZoomedRowHeight; 
    } 

    void GridView_RowClick(object sender, RowClickEventArgs e) 
    { 
     ZoomedRowHandle = e.RowHandle; 
    } 

    private void OnZoomedRowHandleChanged(int prevValue, int value) 
    { 
     GridView.RefreshData(); 
    } 
} 

을 등록합니다 :

답변

2

이 작업을 수행하려면 프로젝트에 다음 헬퍼 클래스를 추가

new GridRowZoomHelper(gridView1).ZoomedRowHeight = 60; 

을 결과 행을 클릭합니다 자동으로 높이 늘리기 :

Auto row zoom

관련 문제