2012-09-28 53 views
0

我有一個UserControl只包含一個DataGridView,設置爲碼頭填充UserControl。 dgv的ScrollBars屬性設置爲Both,但是當我動態地將dgv加載到客戶端窗體中的面板上時,沒有顯示水平滾動條。我發現了這個問題,但我的列沒有被凍結。我的滾動條在哪裏?爲什麼我的DataGridView上沒有水平滾動條?

我是數據綁定的dgv,它的列集合遠遠超過可見寬度。

+0

你能告訴我們一些代碼嗎? – itsmatt

回答

0

所以我簡單的例子工作正常自動顯示滾動條。下面是我所做的:

我有一個UserControl剛剛中有一個DataGridViewDock設置爲

它有一個公共的功能,我添加看起來像這樣:

public void SetBinding(object theSource) 
{ 
    dataGridView1.DataSource = theSource; 
} 

只是來建立與數據源我的綁定。

我的測試形式非常簡單,它只是看起來像這樣:

public partial class Form1 : Form 
{ 
    BindingSource bs = new BindingSource(); 
    List<Stuff> list = new List<Stuff>(); 

    public Form1() 
    { 
     InitializeComponent(); 
     BindSomeStuff(); 
    } 

    private void BindSomeStuff() 
    { 
     for (int i = 0; i < 50; ++i) 
     { 
      list.Add(new Stuff 
      { 
       Column1 = i.ToString() + "Column1 Data", 
       Column2 = i.ToString() + "Column2 Data", 
       Column3 = i.ToString() + "Column3 Data", 
       Column4 = i.ToString() + "Column4 Data", 
       Column5 = i.ToString() + "Column5 Data", 
       Column6 = i.ToString() + "Column6 Data", 
       Column7 = i.ToString() + "Column7 Data", 
       Column8 = i.ToString() + "Column8 Data", 
      } 
      ); 
     } 
     bs.DataSource = list; 
     userControl11.SetBinding(bs); 
    } 
} 

然後有一個簡單的類來保存,看起來像一些虛擬的數據:

public class Stuff 
{ 
    public string Column1 { get; set; } 
    public string Column2 { get; set; } 
    public string Column3 { get; set; } 
    public string Column4 { get; set; } 
    public string Column5 { get; set; } 
    public string Column6 { get; set; } 
    public string Column7 { get; set; } 
    public string Column8 { get; set; } 
} 

UserControl放在窗體和兩個滾動條都顯示出來。

我做並無其他變動的任何東西的DataGridView任何性質的UserControl它的一部分,或者認爲UserControlForm。我想知道你是否有別的東西,我不知道。

+0

原來,我不得不停靠''UserControl'我也加載到它的面板。 – ProfK

+0

應該不重要。我的例子並沒有停靠用戶控件,但我很高興你已經修復了它。 – itsmatt