Nasıl yapılır: Windows Forms DataGridView Denetiminin Boyutlandırma Modlarını Ayarlama
Aşağıdaki yordamlar, denetim için ve denetimde belirli sütunlar için kullanılabilen boyutlandırma seçeneklerini özelleştiren DataGridView veya birleştiren bazı yaygın senaryoları gösterir.
Sabit genişlikli sütun oluşturmak için
özelliğini , özelliğini olarak, özelliğini olarak, AutoSizeMode özelliğini olarak ve özelliğini uygun bir NoneResizableFalseReadOnly
trueWidth değere ayarlayın.DataGridViewTextBoxColumn idColumn = new DataGridViewTextBoxColumn(); idColumn.HeaderText = "ID"; idColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.None; idColumn.Resizable = DataGridViewTriState.False; idColumn.ReadOnly = true; idColumn.Width = 20;Dim idColumn As New DataGridViewTextBoxColumn() idColumn.HeaderText = "ID" idColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.None idColumn.Resizable = DataGridViewTriState.False idColumn.ReadOnly = True idColumn.Width = 20
Boyutunu içeriğine uyacak şekilde ayaran bir sütun oluşturmak için
özelliğini AutoSizeMode içerik tabanlı boyutlandırma moduna ayarlayın.
DataGridViewTextBoxColumn titleColumn = new DataGridViewTextBoxColumn(); titleColumn.HeaderText = "Title"; titleColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCellsExceptHeader;Dim titleColumn As New DataGridViewTextBoxColumn() titleColumn.HeaderText = "Title" titleColumn.AutoSizeMode = _ DataGridViewAutoSizeColumnMode.AllCellsExceptHeader
Değişen boyut ve önem derecesinde değerler için dolgu modu sütunları oluşturmak için
Bu DataGridView.AutoSizeColumnsMode değeri geçersiz Fill kılmayan tüm sütunlar için boyutlandırma modunu ayarlamak için özelliğini olarak ayarlayın. Sütunların FillWeight özelliklerini, ortalama içerik genişlikleriyle orantılı değerlere ayarlayın. Kısmi içeriğin MinimumWidth görüntüden emin olmak için önemli sütunların özelliklerini ayarlayın.
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; DataGridViewTextBoxColumn subTitleColumn = new DataGridViewTextBoxColumn(); subTitleColumn.HeaderText = "Subtitle"; subTitleColumn.MinimumWidth = 50; subTitleColumn.FillWeight = 100; DataGridViewTextBoxColumn summaryColumn = new DataGridViewTextBoxColumn(); summaryColumn.HeaderText = "Summary"; summaryColumn.MinimumWidth = 50; summaryColumn.FillWeight = 200; DataGridViewTextBoxColumn contentColumn = new DataGridViewTextBoxColumn(); contentColumn.HeaderText = "Content"; contentColumn.MinimumWidth = 50; contentColumn.FillWeight = 300;dataGridView1.AutoSizeColumnsMode = _ DataGridViewAutoSizeColumnsMode.Fill Dim subTitleColumn As new DataGridViewTextBoxColumn() subTitleColumn.HeaderText = "Subtitle" subTitleColumn.MinimumWidth = 50 subTitleColumn.FillWeight = 100 Dim summaryColumn As new DataGridViewTextBoxColumn() summaryColumn.HeaderText = "Summary" summaryColumn.MinimumWidth = 50 summaryColumn.FillWeight = 200 Dim contentColumn As new DataGridViewTextBoxColumn() contentColumn.HeaderText = "Content" contentColumn.MinimumWidth = 50 contentColumn.FillWeight = 300
Örnek
Aşağıdaki tam kod örneği, bu konuda açıklanan boyutlandırma seçeneklerini anlamanıza yardımcı olan bir tanıtım uygulaması sağlar.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
public class Form1 : Form
{
[STAThreadAttribute()]
public static void Main()
{
Application.Run(new Form1());
}
private DataGridView dataGridView1 = new DataGridView();
public Form1()
{
dataGridView1.Dock = DockStyle.Fill;
Controls.Add(dataGridView1);
Width *= 2;
Text = "DataGridView Sizing Scenarios";
}
protected override void OnLoad(EventArgs e)
{
DataGridViewTextBoxColumn idColumn =
new DataGridViewTextBoxColumn();
idColumn.HeaderText = "ID";
idColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.None;
idColumn.Resizable = DataGridViewTriState.False;
idColumn.ReadOnly = true;
idColumn.Width = 20;
DataGridViewTextBoxColumn titleColumn =
new DataGridViewTextBoxColumn();
titleColumn.HeaderText = "Title";
titleColumn.AutoSizeMode =
DataGridViewAutoSizeColumnMode.AllCellsExceptHeader;
dataGridView1.AutoSizeColumnsMode =
DataGridViewAutoSizeColumnsMode.Fill;
DataGridViewTextBoxColumn subTitleColumn =
new DataGridViewTextBoxColumn();
subTitleColumn.HeaderText = "Subtitle";
subTitleColumn.MinimumWidth = 50;
subTitleColumn.FillWeight = 100;
DataGridViewTextBoxColumn summaryColumn =
new DataGridViewTextBoxColumn();
summaryColumn.HeaderText = "Summary";
summaryColumn.MinimumWidth = 50;
summaryColumn.FillWeight = 200;
DataGridViewTextBoxColumn contentColumn =
new DataGridViewTextBoxColumn();
contentColumn.HeaderText = "Content";
contentColumn.MinimumWidth = 50;
contentColumn.FillWeight = 300;
dataGridView1.Columns.AddRange(new DataGridViewTextBoxColumn[] {
idColumn, titleColumn, subTitleColumn,
summaryColumn, contentColumn });
dataGridView1.Rows.Add(new String[] { "1",
"A Short Title", "A Longer SubTitle",
"A short description of the main point.",
"The full contents of the topic, with detailed examples." });
base.OnLoad(e);
}
}
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Text
Imports System.Windows.Forms
Public Class Form1
Inherits Form
<STAThreadAttribute()> _
Public Shared Sub Main()
Application.Run(New Form1())
End Sub
Private dataGridView1 As New DataGridView()
Public Sub New()
dataGridView1.Dock = DockStyle.Fill
Controls.Add(dataGridView1)
Width *= 2
Text = "DataGridView Sizing Scenarios"
End Sub
Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
Dim idColumn As New DataGridViewTextBoxColumn()
idColumn.HeaderText = "ID"
idColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.None
idColumn.Resizable = DataGridViewTriState.False
idColumn.ReadOnly = True
idColumn.Width = 20
Dim titleColumn As New DataGridViewTextBoxColumn()
titleColumn.HeaderText = "Title"
titleColumn.AutoSizeMode = _
DataGridViewAutoSizeColumnMode.AllCellsExceptHeader
dataGridView1.AutoSizeColumnsMode = _
DataGridViewAutoSizeColumnsMode.Fill
Dim subTitleColumn As new DataGridViewTextBoxColumn()
subTitleColumn.HeaderText = "Subtitle"
subTitleColumn.MinimumWidth = 50
subTitleColumn.FillWeight = 100
Dim summaryColumn As new DataGridViewTextBoxColumn()
summaryColumn.HeaderText = "Summary"
summaryColumn.MinimumWidth = 50
summaryColumn.FillWeight = 200
Dim contentColumn As new DataGridViewTextBoxColumn()
contentColumn.HeaderText = "Content"
contentColumn.MinimumWidth = 50
contentColumn.FillWeight = 300
dataGridView1.Columns.AddRange(New DataGridViewTextBoxColumn() { _
idColumn, titleColumn, subTitleColumn, _
summaryColumn, contentColumn})
dataGridView1.Rows.Add(New String() {"1", _
"A Short Title", "A Longer SubTitle", _
"A short description of the main point.", _
"The full contents of the topic, with detailed examples."})
MyBase.OnLoad(e)
End Sub
End Class
Bu tanıtım uygulamasını kullanmak için:
Formun boyutunu değiştirme. Dolgu modu sütunlarının genişliklerini değiştirerek özellik değerleriyle belirtilen oranları nasıl koruyarak değiştiklerine FillWeight dikkat edin. Bir sütunun form çok MinimumWidth küçük olduğunda değişmesini nasıl engelley olduğunu gözlemlemek.
Sütun bölmelerini fareyle sürükleyerek sütun boyutlarını değiştirebilirsiniz. Bazı sütunların nasıl yeniden boyutlandırılanamay olduğunu ve yeniden boyutlandırılabilir sütunların minimum genişliklerinden daha dar hale alınamayalarını gözlemlemek.
Kod Derleniyor
Bu örnek şunları gerektirir:
- Sistem ve Sistem başvuruları. Windows. Derlemeleri oluşturur.