0

私のフォームのサイズは 1024x600 に固定されています (dataGridView の幅は 1022 です)。このコードで XML を読み取ろうとすると、すべての列の幅が同じになり、列 10、11、12、および 13 は外側にあるため表示されません。

private void btLoadXML_Click(object sender, EventArgs e)
    {
    DataTable dt = new DataTable("itemstable");

    dt.Columns.Add("Datum", typeof(System.String));
    dt.Columns.Add("1", typeof(System.String));
    dt.Columns.Add("2", typeof(System.String));
    dt.Columns.Add("3", typeof(System.String));
    dt.Columns.Add("4", typeof(System.String));
    dt.Columns.Add("5", typeof(System.String));
    dt.Columns.Add("6", typeof(System.String));
    dt.Columns.Add("7", typeof(System.String));
    dt.Columns.Add("8", typeof(System.String));
    dt.Columns.Add("9", typeof(System.String));
    dt.Columns.Add("10", typeof(System.String));
    dt.Columns.Add("11", typeof(System.String));
    dt.Columns.Add("12", typeof(System.String));
    dt.Columns.Add("13", typeof(System.String));

    //Read XML File And Display Data in GridView
    dt.ReadXml("items2.xml");
    dataGridView1.DataSource = dt;
    }

すべてが収まるように、各列の幅を手動で調整するにはどうすればよいですか?

4

3 に答える 3

0

これを試して:

dataGridView1.Columns[0].Width = 200;
于 2014-02-18T18:36:09.587 に答える
0

使用するGrid.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);

自動作成されたグリッドの場合、所有しているコントロールのイベントに応答せずに、列を強制的に正しい幅から開始できる唯一の方法は次のとおりです。

public static void InitGrid(DataGridView Grid) {
    Grid.HandleCreated+=new System.EventHandler(DoResizeColumnsEvent);
}

static void DoResizeColumnsEvent(object sender,EventArgs e) {
            ((DataGridView)sender).AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);         
}
于 2016-01-21T21:13:31.583 に答える
0

次のように、dataGridview で幅を設定する必要があります。

dataGridView1.Columns[index].Width = /*insert number here*/;

通常、データ操作には前者を使用し、テーブル レンダリングには後者を使用して、dataTable と dataGridView を分離するのが好きです。

于 2014-02-18T18:39:18.727 に答える