2012-06-18 2 views
1

Я не на 100% уверен, как я должен ответить на этот вопрос, но я постараюсь изо всех сил.Winforms DataGridView изменение размера вопрос

У меня есть PointCtrlForm, который имеет DataGridView внутри TableLayoutPanel. DataGridView прикрепляется к таблице как Fill. PointCtrlForm прикрепляется к другому окну, установленному как MDIParent, с параметром dockstyle, заданным как Fill.

Изменение размера главного окна должным образом изменяет размер PointCtrlForm, что также должно изменить размер DataGridView. Ну, по крайней мере, «половина» изменения размера работает правильно. Расширение главного окна также увеличивает представление datagridview, которое я ожидал, но если я скрою главное окно до определенной точки, DataGridView перестанет сокращаться и скрывает столбцы, не показывая полосу прокрутки.

Я проверил, что все столбцы не имеют свойства Frozen, проверено, что как datagridview, так и дочернее окно должным образом состыкованы и проверено, что свойство scrollbars установлено на оба.

Редактировать: AutoSizeColumnsMode также заполняется.

Здесь я разместил содержимое Designer.cs. Буду признателен за любое руководство.

namespace DDCUI 
{ 
    partial class PointCtrlForm 
    { 
     /// <summary> 
     /// Required designer variable. 
     /// </summary> 
     private System.ComponentModel.IContainer components = null; 

     /// <summary> 
     /// Clean up any resources being used. 
     /// </summary> 
     /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> 
     protected override void Dispose(bool disposing) 
     { 
      if (disposing && (components != null)) 
      { 
       components.Dispose(); 
      } 
      base.Dispose(disposing); 
     } 

     #region Windows Form Designer generated code 

     /// <summary> 
     /// Required method for Designer support - do not modify 
     /// the contents of this method with the code editor. 
     /// </summary> 
     private void InitializeComponent() 
     { 
      this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); 
      this.CmbSubDevice = new System.Windows.Forms.ComboBox(); 
      this.BtnBack = new System.Windows.Forms.Button(); 
      this.CmbMainDevice = new System.Windows.Forms.ComboBox(); 
      this.dataGridView1 = new System.Windows.Forms.DataGridView(); 
      this.BtnRefresh = new System.Windows.Forms.Button(); 
      this.label1 = new System.Windows.Forms.Label(); 
      this.ID = new System.Windows.Forms.DataGridViewTextBoxColumn(); 
      this.PointName = new System.Windows.Forms.DataGridViewTextBoxColumn(); 
      this.Value = new System.Windows.Forms.DataGridViewTextBoxColumn(); 
      this.Description = new System.Windows.Forms.DataGridViewTextBoxColumn(); 
      this.DefaultValue = new System.Windows.Forms.DataGridViewTextBoxColumn(); 
      this.ActiveString = new System.Windows.Forms.DataGridViewTextBoxColumn(); 
      this.InactiveString = new System.Windows.Forms.DataGridViewTextBoxColumn(); 
      this.AlarmCondition = new System.Windows.Forms.DataGridViewTextBoxColumn(); 
      this.tableLayoutPanel1.SuspendLayout(); 
      ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit(); 
      this.SuspendLayout(); 
      // 
      // tableLayoutPanel1 
      // 
      this.tableLayoutPanel1.ColumnCount = 6; 
      this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 100F)); 
      this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 100F)); 
      this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 100F)); 
      this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 100F)); 
      this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 151F)); 
      this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 88F)); 
      this.tableLayoutPanel1.Controls.Add(this.CmbSubDevice, 0, 1); 
      this.tableLayoutPanel1.Controls.Add(this.BtnBack, 0, 0); 
      this.tableLayoutPanel1.Controls.Add(this.CmbMainDevice, 0, 1); 
      this.tableLayoutPanel1.Controls.Add(this.dataGridView1, 0, 2); 
      this.tableLayoutPanel1.Controls.Add(this.BtnRefresh, 4, 1); 
      this.tableLayoutPanel1.Controls.Add(this.label1, 5, 1); 
      this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; 
      this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); 
      this.tableLayoutPanel1.Name = "tableLayoutPanel1"; 
      this.tableLayoutPanel1.RowCount = 3; 
      this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 67.02128F)); 
      this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 32.97872F)); 
      this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 368F)); 
      this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); 
      this.tableLayoutPanel1.Size = new System.Drawing.Size(639, 467); 
      this.tableLayoutPanel1.TabIndex = 0; 
      // 
      // CmbSubDevice 
      // 
      this.tableLayoutPanel1.SetColumnSpan(this.CmbSubDevice, 2); 
      this.CmbSubDevice.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; 
      this.CmbSubDevice.Font = new System.Drawing.Font("굴림", 12F); 
      this.CmbSubDevice.FormattingEnabled = true; 
      this.CmbSubDevice.Location = new System.Drawing.Point(203, 69); 
      this.CmbSubDevice.Name = "CmbSubDevice"; 
      this.CmbSubDevice.Size = new System.Drawing.Size(194, 24); 
      this.CmbSubDevice.TabIndex = 3; 
      // 
      // BtnBack 
      // 
      this.BtnBack.Location = new System.Drawing.Point(3, 3); 
      this.BtnBack.Name = "BtnBack"; 
      this.BtnBack.Size = new System.Drawing.Size(94, 54); 
      this.BtnBack.TabIndex = 0; 
      this.BtnBack.Text = "Back"; 
      this.BtnBack.UseVisualStyleBackColor = true; 
      this.BtnBack.Click += new System.EventHandler(this.BtnBack_Click); 
      // 
      // CmbMainDevice 
      // 
      this.tableLayoutPanel1.SetColumnSpan(this.CmbMainDevice, 2); 
      this.CmbMainDevice.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; 
      this.CmbMainDevice.Font = new System.Drawing.Font("굴림", 12F); 
      this.CmbMainDevice.FormattingEnabled = true; 
      this.CmbMainDevice.Items.AddRange(new object[] { 
      "I/O", 
      "VIRTUAL", 
      "SAC", 
      "MODBUS", 
      "NATIONAL", 
      "TOSHIBA", 
      "SCHEDULE", 
      "SYSTEM ALARM", 
      "LOGIC", 
      "GROUP"}); 
      this.CmbMainDevice.Location = new System.Drawing.Point(3, 69); 
      this.CmbMainDevice.Name = "CmbMainDevice"; 
      this.CmbMainDevice.Size = new System.Drawing.Size(194, 24); 
      this.CmbMainDevice.TabIndex = 2; 
      this.CmbMainDevice.SelectedIndexChanged += new System.EventHandler(this.CmbMainDevice_SelectedIndexChanged); 
      // 
      // dataGridView1 
      // 
      this.dataGridView1.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill; 
      this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; 
      this.dataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { 
      this.ID, 
      this.PointName, 
      this.Value, 
      this.Description, 
      this.DefaultValue, 
      this.ActiveString, 
      this.InactiveString, 
      this.AlarmCondition}); 
      this.tableLayoutPanel1.SetColumnSpan(this.dataGridView1, 6); 
      this.dataGridView1.Dock = System.Windows.Forms.DockStyle.Fill; 
      this.dataGridView1.Location = new System.Drawing.Point(3, 101); 
      this.dataGridView1.Name = "dataGridView1"; 
      this.dataGridView1.RowTemplate.Height = 23; 
      this.dataGridView1.Size = new System.Drawing.Size(633, 363); 
      this.dataGridView1.TabIndex = 5; 
      // 
      // BtnRefresh 
      // 
      this.BtnRefresh.Location = new System.Drawing.Point(403, 69); 
      this.BtnRefresh.Name = "BtnRefresh"; 
      this.BtnRefresh.Size = new System.Drawing.Size(94, 26); 
      this.BtnRefresh.TabIndex = 6; 
      this.BtnRefresh.Text = "Refresh"; 
      this.BtnRefresh.UseVisualStyleBackColor = true; 
      // 
      // label1 
      // 
      this.label1.AutoSize = true; 
      this.label1.Dock = System.Windows.Forms.DockStyle.Fill; 
      this.label1.Font = new System.Drawing.Font("굴림", 12F); 
      this.label1.Location = new System.Drawing.Point(554, 66); 
      this.label1.Name = "label1"; 
      this.label1.Size = new System.Drawing.Size(82, 32); 
      this.label1.TabIndex = 7; 
      this.label1.Text = "XXX 개"; 
      this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; 
      // 
      // ID 
      // 
      this.ID.FillWeight = 70F; 
      this.ID.HeaderText = "ID"; 
      this.ID.Name = "ID"; 
      // 
      // PointName 
      // 
      this.PointName.FillWeight = 70F; 
      this.PointName.HeaderText = "이름"; 
      this.PointName.Name = "PointName"; 
      // 
      // Value 
      // 
      this.Value.FillWeight = 70F; 
      this.Value.HeaderText = "값"; 
      this.Value.Name = "Value"; 
      // 
      // Description 
      // 
      this.Description.FillWeight = 70F; 
      this.Description.HeaderText = "설명"; 
      this.Description.Name = "Description"; 
      // 
      // DefaultValue 
      // 
      this.DefaultValue.FillWeight = 70F; 
      this.DefaultValue.HeaderText = "초기값"; 
      this.DefaultValue.Name = "DefaultValue"; 
      // 
      // ActiveString 
      // 
      this.ActiveString.HeaderText = "Active문자열"; 
      this.ActiveString.Name = "ActiveString"; 
      // 
      // InactiveString 
      // 
      this.InactiveString.HeaderText = "InActive문자열"; 
      this.InactiveString.Name = "InactiveString"; 
      // 
      // AlarmCondition 
      // 
      this.AlarmCondition.HeaderText = "알람조건"; 
      this.AlarmCondition.Name = "AlarmCondition"; 
      // 
      // PointCtrlForm 
      // 
      this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); 
      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 
      this.ClientSize = new System.Drawing.Size(639, 467); 
      this.Controls.Add(this.tableLayoutPanel1); 
      this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; 
      this.Name = "PointCtrlForm"; 
      this.Text = "LG-DDC"; 
      this.tableLayoutPanel1.ResumeLayout(false); 
      this.tableLayoutPanel1.PerformLayout(); 
      ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit(); 
      this.ResumeLayout(false); 

     } 

     #endregion 

     private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; 
     private System.Windows.Forms.Button BtnBack; 
     private System.Windows.Forms.ComboBox CmbMainDevice; 
     private System.Windows.Forms.ComboBox CmbSubDevice; 
     private System.Windows.Forms.DataGridView dataGridView1; 
     private System.Windows.Forms.Button BtnRefresh; 
     private System.Windows.Forms.Label label1; 
     private System.Windows.Forms.DataGridViewTextBoxColumn ID; 
     private System.Windows.Forms.DataGridViewTextBoxColumn PointName; 
     private System.Windows.Forms.DataGridViewTextBoxColumn Value; 
     private System.Windows.Forms.DataGridViewTextBoxColumn Description; 
     private System.Windows.Forms.DataGridViewTextBoxColumn DefaultValue; 
     private System.Windows.Forms.DataGridViewTextBoxColumn ActiveString; 
     private System.Windows.Forms.DataGridViewTextBoxColumn InactiveString; 
     private System.Windows.Forms.DataGridViewTextBoxColumn AlarmCondition; 

    } 
} 
+0

попробуйте 'this.AutoSizeMode = AutoSizeMode.GrowAndShrink;' в mdi child form_load. просто проверьте его один раз. У меня не очень хорошая команда на windows – JayOnDotNet

+0

Когда я попытался это сделать, все, что на дочерней форме (включая DataGridView) исчезает при изменении размера – l46kok

ответ

1

Я нашел решение, и это довольно просто.

Размеры строк и столбцов для DGV должны быть установлены «процент (относительный)», а не «абсолютный», чтобы док-станция работала должным образом.

Вы можете редактировать размеры, щелкнув правой кнопкой мыши по одной из ячеек DGV и щелкнув правой кнопкой мыши на Edit Row/Column Properties.

+0

Я не вижу настройки, которые вы меняете? –

Смежные вопросы