0

私は、を埋めるためにドッキングするように設定されUserControlた、のみで構成されています。dgvのプロパティはに設定されていますが、クライアントフォームのパネルにdgvを動的にロードすると、水平スクロールバーが表示されません。この質問を見つけましたが、どの列もフリーズしていません。スクロールバーはどこにありますか?DataGridViewUserControlScrollBarsBoth

私はdgvをデータバインディングしていますが、その列コレクションは表示幅をはるかに超えています。

4

2 に答える 2

-1

したがって、私の簡単な例は、スクロールバーを自動的に表示するためにうまく機能します。これが私がしたことです:

が含まれ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。私が設定していないものが他にあるのではないかと思います。

于 2012-09-28T11:31:27.700 に答える
-1

このシナリオでは、 UserControl +DataGridView+欠落しているHorizo​​ntalScrollBarFrozen = false各列のDataGridViewのin列エディターを 設定するだけです。はい、

  dataGridView1.ScrollBars = ScrollBars.Both;
于 2021-06-02T06:26:23.550 に答える