2012-07-17 764 views
3

實現我有2個DataGrid中有相同數量的列的DataGridView需要隱藏滾動條,而滾動應該通過代碼

Datagrid1是隻顯示標題, Datagrid2的是它下面顯示的所有數據。實質上,2格表示需要同步以顯示爲1格。

我的問題是我需要隱藏datagrid1的水平滾動條,但只顯示datagrid2的水平滾動條。 當用戶滾動datagrid2時,我需要以編程方式同步datagrid1上的標題。

任何人都可以建議嗎?

回答

2

您可以設置DataGridViews的ScrollBasr屬性以隱藏垂直滾動條

例如,在鏈接 http://msdn.microsoft.com/en-us/library/system.windows.forms.scrollbars

+1

感謝Hatsoft,我明白瞭如何隱藏滾動條......如何同步它當用戶滾動第二格? – Kamath 2012-07-17 21:32:11

+0

@Kamath你的意思是,如果用戶移動第二個網格的滾動條,甚至第一個網格滾動條必須移動? – HatSoft 2012-07-17 21:33:47

+0

是的,這是正確的Hatsoft .. – Kamath 2012-07-17 21:52:39

0

您可以設置VerticalScrollingOffset值來定位你想要的索引處的滾動條

dataGridViews1.ScrollBars = ScrollBars.None; 

或看其他枚舉值。處理第二個DGV中的滾動事件,併爲第一個DGv設置此VerticalScrollingOffset。這應該有所幫助。

0

我有同樣的概念,像你..我已經解決了它,如下所示:它可以幫助你。

private void dgvHeader_ColumnWidthChanged(object sender, DataGridViewColumnEventArgs e) 
    { 
     //When Header Grid Width Changes automatically Below Grid's COLUMN width will be changes 
     dgvData.Columns[e.Column.Index].Width = e.Column.Width; 
    } 
4

試試這個..

dataGridViews1.ScrollBars = ScrollBars.None; 

private void dataGridViews2_Scroll(object sender, ScrollEventArgs e) 
    { 
     int offSetValue = dataGridViews1.HorizontalScrollingOffset; 

     try 
      { 
      dataGridViews1.HorizontalScrollingOffset = offSetValue; 
      } 
     catch { } 

      dataGridViews1.Invalidate(); 
    }