여러 행이 포함 된 TableLayoutPanel이 있는데 그 중 일부는 TextBox'es를 포함하고 일부는 DataGridView를 포함합니다. DataGridView의 AutoSize를 포함하는 TableLayoutPanel 행의 SizeType을 설정합니다. DataGridView에서 행을 추가/제거 할 때 해당 행을 포함하는 행의 높이가 증가/감소한다고 기대하고있었습니다. 그것은 일어나지 않습니다. 이것이 어떻게 작동해야하는지 오해하고 있습니까? 이 방법이 내가 예상했던대로 작동하도록 할 수 있습니까?TableLayoutPanel 조정 DataGridView에서 행을 추가/제거 할 때의 행 높이
0
A
답변
0
2 명의 의견 작성자가 맞았습니다. 문제는 DataGridView 자체에서 발생했습니다. 나는 method 1을 사용하여 끝났다. 여러 개의 탭이있는 테스트 응용 프로그램을 만들었고, 각 탭에는 datagridview와 행을 추가하는 버튼, 행을 제거하는 버튼이 포함되어 있습니다. 첫 번째 탭에는이 세 가지 구성 요소가 포함되어 있었으므로 실제로 확장 될 수 있는지 확인하고 싶었습니다. 두 번째 탭에서 Autoscroll이 true로 설정된 Panel 내부에 세 개의 구성 요소를 놓았습니다. 그것도 괜찮 았어. 그리고 계속해서, 사용자 정의 컨트롤 내에서 DataLabel 및 Button을 TableLayoutPanel 내에 놓을 때까지 (자동 스크롤을 true로 설정하여) 그것은 모두 잘 작동합니다. 다른 사람들이 실험하고 싶어하는 경우를 대비하여, 버튼을 두 개씩 누르고 데이터 그 림 뷰를 각 탭에 놓고 주 폼에서 다음 코드를 사용하여 디자이너를 사용하지 않고 초기화합니다.
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. 그리드 행 높이 조정
- 2. Excel에서 행 높이 조정
- 3. TableLayoutPanel 자동으로 크기 조정
- 4. TableLayoutPanel : 행 삭제
- 5. HTML의 자동 행 높이 조정
- 6. 행 높이 조정 xtable R
- 7. JTable의 행 높이 자동 조정
- 8. extjs6 그리드 행 높이 조정
- 9. TableLayoutPanel 빈 행을 제거하십시오.
- 10. 런타임시 TableLayoutPanel 행 및 열
- 11. TableLayoutPanel 높이 속성이 작동하지 않습니다.
- 12. DataGridView에서 행 인덱스를 삭제합니다.
- 13. Datagridview에서 행 선택
- 14. JavaFX 동적 격자 패널 행 높이 조정
- 15. DataGridView에서 행 속성을 제어 할 수 없습니다.
- 16. DataGridView에서 행을 삭제 하시겠습니까?
- 17. DataGridView에서 선택 시작 행
- 18. DataGridView에서 DataSet의 행 삭제
- 19. datagridview에서 행 삭제
- 20. DataGridview에서 여러 행 삭제
- 21. TableLayoutPanel 행 1의 Foreach 항목
- 22. Datagridview에서 행 유효성 검사
- 23. Google 표 차트 행 높이 조정
- 24. DataGridView에서 선택된 행 삭제
- 25. DataGridView에서 행 선택
- 26. TableLayoutPanel 마지막 행 크기가 너무 큼
- 27. 크기 조정 방법 Android ListView 행 높이
- 28. R 이미지() 함수에서 행 높이 조정
- 29. 목록 위젯의 행 높이 크기 조정
- 30. 컨테이너 행 높이 자동 채움/CSS로 조정
'DataGridView.AutoSize = true;'를 코드와 함께 설정해보십시오 (어떤 이유로 디자이너에 표시되지 않음). –
[DataGridView 자동 높이 - AutoGridView 높이 방법?] (http://stackoverflow.com/q/38816425/3110834) –