複数の行を含むTableLayoutPanelがあります。その中にはTextBoxのものがあり、その中にはDataGridViewのものがあります。 DataGridViewを含むTableLayoutPanel行のSizeTypeをAutoSizeに設定しました。私は、行が追加/削除されてDataGridViewの行の高さが増減することを期待していました。それは起こっていない。どうやってこれがうまくいくのか誤解していますか?これを私が期待していたように動作させる方法はありますか?TableLayoutPanelの調整DataGridViewから行が追加/削除されたときの行の高さ
0
A
答えて
0
2人のコメント作成者が正しかった:) DataGridView自体に問題があったことが判明しました。私はmethod 1を使って終わった。私は複数のタブを持つテストアプリケーションを構築しました。各タブには、データグリッドビューと行を追加するボタンと行を削除するボタンが含まれていました。最初のタブには3つのコンポーネントが含まれていましたが、実際にはそれが本当に成長できるかどうかを確認したかっただけです。 2番目のタブでは、3つのコンポーネントをAutoscrollのパネル内に配置してtrueに設定しました。それもうまくいきました。それで、DataLabelとButtonをTableLayoutPanelの中に入れて(オートスクロールをtrueに設定して)、ユーザコントロール内に配置します。それはすべて正常に動作します。他の人が実験したい場合に備えて、2つのボタンとデータグリッドビューを各タブにドロップし、次のコード(メインフォーム)を使用して(デザイナを使用するのではなく)初期化します。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Setup(dataGridView1, buttonAddRow1, buttonRemoveRow1);
Setup(dataGridView2, buttonAddRow2, buttonRemoveRow2);
Setup(dataGridView3, buttonAddRow3, buttonRemoveRow3);
Setup(dataGridView4, button1, button2);
Setup(userControl11.dataGridView4, userControl11.button1, userControl11.button2);
dataGridView3.MaximumSize = new Size(0, 100);
dataGridView4.MaximumSize = new Size(0, 100);
}
#region static helpers
private static void Setup(DataGridView grid, Button buttonAdd, Button buttonRemove)
{
BindingList<RowItem> list = new BindingList<RowItem>();
SetupGrid(grid, list);
buttonAdd.Click += (sender, e) => Add(list);
buttonRemove.Click += (sender, e) => Remove(list);
}
private static void Add(BindingList<RowItem> list)
{
list.Add(new RowItem() { Name = "Row " + list.Count });
}
private static void Remove(BindingList<RowItem> list)
{
if (list.Count > 0)
list.RemoveAt(list.Count - 1);
}
private static void SetupGrid(DataGridView grid, BindingList<RowItem> list)
{
grid.AutoGenerateColumns = false;
grid.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
grid.RowHeadersVisible = false;
grid.Columns.Add(CreateTextColumn("Name"));
grid.DataSource = list;
}
/// <summary>
/// Sets read-only to true
/// </summary>
/// <param name="dataPropertyName"></param>
/// <param name="format"></param>
/// <param name="columnName"></param>
/// <returns></returns>
static public DataGridViewTextBoxColumn CreateTextColumn(string dataPropertyName, string columnName = null, string format = null, bool readOnly = true, DataGridViewAutoSizeColumnMode autosizeMode = DataGridViewAutoSizeColumnMode.AllCells, int width = 40, DataGridViewColumnSortMode sortMode = DataGridViewColumnSortMode.Automatic)
{
DataGridViewTextBoxColumn textColumn = new DataGridViewTextBoxColumn();
textColumn.DataPropertyName = dataPropertyName;
textColumn.Name = String.IsNullOrEmpty(columnName) ? dataPropertyName : columnName;
textColumn.ReadOnly = readOnly;
textColumn.AutoSizeMode = autosizeMode;
textColumn.Resizable = DataGridViewTriState.True;
textColumn.Width = width;
if (!String.IsNullOrEmpty(format))
textColumn.DefaultCellStyle.Format = format;
textColumn.SortMode = sortMode;
return textColumn;
}
#endregion static helpers
}
class RowItem
{
public string Name { get; set; }
}
関連する問題
- 1. HTMLの自動行の高さ調整
- 2. 行が追加されたときに表のセルからサブビューが削除される
- 3. テーブルビューから行が削除されたときのイベントハンドラ
- 4. Laravel 5.1行が削除されたときのサブリレーションシップデータの削除
- 5. DataGridView行を削除すると、代替行だけが削除されます
- 6. 行数が追加されたオブジェクトのプロパティを削除する
- 7. 幅が調整されるときに調整するUIScrollViewの高さ
- 8. JPanelからの行の追加/削除
- 9. %を調整するとdivの高さが調整されませんか?
- 10. jQueryUIで行が削除されたときにテーブルセルが追加される(ただし、Chromeのみ)
- 11. 2行目から行の高さを削除する
- 12. ブートストラップテーブルの行の高さを調整できません
- 13. DataTable(1.10.8)を削除すると、削除された行が再度追加されますか?
- 14. DataGridViewで削除された行の取り消し
- 15. 削除キーがvb.netで押されたときに、datagridview内の選択された行を消去します。
- 16. ASP.NETで自動サイズ調整されたGridView行の高さを検出する
- 17. 高さ調整
- 18. TableLayoutPanelの行の高さが正しくない
- 19. 内側のdivが削除されたときに、外側のdivが正しく調整されます
- 20. テーブルがソートされたときに削除されたばかりのデータが追加されました
- 21. データバインドされたDataGridViewにプログラムで行を追加しますか?
- 22. Word VBAテーブルから追加された行を削除しています
- 23. 行が追加されたときのPrimeNG p-datatableからのイベント
- 24. Googleの表の行の高さを調整する
- 25. Datatable.Loadで削除された行が削除されない
- 26. ブートストラップ調整セクションの高さ
- 27. オープンソーシャルガジェット付きの動的高さ調整
- 28. jQueryのチェックiFrameの高さと調整
- 29. 行を削除し、削除された行のIDを返す
- 30. 選択されたテーブルビューの行がmySqlデータベースから削除されました
コードで「DataGridView.AutoSize = true;」を設定してください(なんらかの理由で、デザイナーには存在しません)。 –
[DataGridViewの自動高さ - DataGridViewの高さを自動化する方法](http://stackoverflow.com/q/38816425/3110834) –