したがって、私の簡単な例は、スクロールバーを自動的に表示するためにうまく機能します。これが私がしたことです:
が含まれUserControl
ているだけDataGridView
で、FullDock
に設定されています。
私が追加したパブリック関数は次のようになります。
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; }
}
MyUserControl
がフォームに配置され、両方のスクロールバーが表示されます。
DataGridView
、のUserControl
一部である、またはそれForm
を保持するのいずれかのプロパティに他の変更を加えていませんUserControl
。私が設定していないものが他にあるのではないかと思います。