This documentation is archived and is not being maintained.

DataGridTableStyle.PreferredColumnWidth Property

Gets or sets the width used to create columns when a new grid is displayed.

[Visual Basic]
Public Property PreferredColumnWidth As Integer
[C#]
public int PreferredColumnWidth {get; set;}
[C++]
public: __property int get_PreferredColumnWidth();
public: __property void set_PreferredColumnWidth(int);
[JScript]
public function get PreferredColumnWidth() : int;
public function set PreferredColumnWidth(int);

Property Value

The width used to create columns when a new grid is displayed.

Example

[Visual Basic] 
Private Sub CreateAndBindDataSet(ByVal myDataGrid As System.Windows.Forms.DataGrid)
    Dim myDataSet As New DataSet("myDataSet")
    Dim myEmpTable As New DataTable("Employee")
    ' Create two columns, and add them to employee table.
    Dim myEmpID As New DataColumn("EmpID", GetType(Integer))
    Dim myEmpName As New DataColumn("EmpName")
    myEmpTable.Columns.Add(myEmpID)
    myEmpTable.Columns.Add(myEmpName)
    ' Add table to DataSet.
    myDataSet.Tables.Add(myEmpTable)
    ' Populate table.
    Dim newRow1 As DataRow
    ' Create employee records in employee Table.
    Dim i As Integer
    For i = 1 To 5
        newRow1 = myEmpTable.NewRow()
        newRow1("EmpID") = i
        ' Add row to Employee table.
        myEmpTable.Rows.Add(newRow1)
    Next i
    ' Give each employee a distinct name.
    myEmpTable.Rows(0)("EmpName") = "Alpha"
    myEmpTable.Rows(1)("EmpName") = "Beta"
    myEmpTable.Rows(2)("EmpName") = "Omega"
    myEmpTable.Rows(3)("EmpName") = "Gamma"
    myEmpTable.Rows(4)("EmpName") = "Delta"
    ' Bind DataGrid to DataSet.
    myDataGrid.SetDataBinding(myDataSet, "Employee")
End Sub 'CreateAndBindDataSet


Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
    ' Set and Display myDataGrid.
    myDataGrid.DataMember = ""
    myDataGrid.Location = New System.Drawing.Point(72, 32)
    myDataGrid.Name = "myDataGrid"
    myDataGrid.Size = New System.Drawing.Size(240, 200)
    myDataGrid.TabIndex = 4
    ' Add it to controls.
    Controls.Add(myDataGrid)
    CreateAndBindDataSet(myDataGrid)
    myDataGridTableStyle.MappingName = "Employee"
    ' Set other properties.
    myDataGridTableStyle.AlternatingBackColor = Color.LightGray
    ' Add DataGridTableStyle instances to GridTableStylesCollection.
    myDataGridTableStyle.PreferredColumnWidth = 100
    myColWidth.Text = ""
    myDataGrid.TableStyles.Add(myDataGridTableStyle)
    AddHandler myDataGridTableStyle.PreferredColumnWidthChanged, AddressOf MyDelegatePreferredColWidthChanged
End Sub 'Form1_Load


Public Sub MyDelegatePreferredColWidthChanged(ByVal sender As Object, ByVal e As EventArgs)
    MessageBox.Show("Preferred Column width has changed")
End Sub 'MyDelegatePreferredColWidthChanged


Private Sub myButton_Click(ByVal sender As Object, ByVal e As EventArgs) Handles myButton.Click
    Try
        If myColWidth.Text <> "" Then
            Dim newwidth As Integer = Integer.Parse(myColWidth.Text)
            myDataGridTableStyle.PreferredColumnWidth = newwidth
            ' Dispose datagrid and datagridtablestyle and then create.
            myDataGrid.Dispose()
            myDataGridTableStyle.Dispose()
            myDataGrid = New Windows.Forms.Datagrid()
            myDataGridTableStyle = New DataGridTableStyle()
            myDataGrid.DataMember = ""
            myDataGrid.Location = New System.Drawing.Point(72, 32)
            myDataGrid.Name = "myDataGrid"
            myDataGrid.Size = New System.Drawing.Size(240, 200)
            myDataGrid.TabIndex = 4
            Controls.Add(myDataGrid)
            CreateAndBindDataSet(myDataGrid)
            myDataGridTableStyle.MappingName = "Employee"
            ' Set other properties.
            myDataGridTableStyle.AlternatingBackColor = Color.LightGray
            ' Add DataGridTableStyle instances to GridTableStylesCollection.
            myDataGridTableStyle.PreferredColumnWidth = newwidth
            myColWidth.Text = ""
            myDataGrid.TableStyles.Add(myDataGridTableStyle)
            AddHandler myDataGridTableStyle.PreferredColumnWidthChanged, AddressOf MyDelegatePreferredColWidthChanged
        Else
            MessageBox.Show("Please enter a number")
        End If
    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try
End Sub 'myButton_Click

[C#] 
private void CreateAndBindDataSet(DataGrid myDataGrid)
{
   DataSet myDataSet = new DataSet("myDataSet");
   DataTable myEmpTable = new DataTable("Employee");
   // Create two columns, and add them to employee table.
   DataColumn myEmpID = new DataColumn("EmpID", typeof(int));
   DataColumn myEmpName = new DataColumn("EmpName");
   myEmpTable.Columns.Add(myEmpID);
   myEmpTable.Columns.Add(myEmpName);
   // Add table to DataSet.
   myDataSet.Tables.Add(myEmpTable);
   // Populate table.
   DataRow newRow1;
   // Create employee records in employee Table.
   for(int i = 1; i < 6; i++)
   {
      newRow1 = myEmpTable.NewRow();
      newRow1["EmpID"] = i;
      // Add row to Employee table.
      myEmpTable.Rows.Add(newRow1);
   }
   // Give each employee a distinct name.
   myEmpTable.Rows[0]["EmpName"] = "Alpha";
   myEmpTable.Rows[1]["EmpName"] = "Beta";
   myEmpTable.Rows[2]["EmpName"] = "Omega";
   myEmpTable.Rows[3]["EmpName"] = "Gamma";
   myEmpTable.Rows[4]["EmpName"] = "Delta";
   // Bind DataGrid to DataSet.
   myDataGrid.SetDataBinding(myDataSet, "Employee");
}

private void Form1_Load(object sender, System.EventArgs e)
{
   // Set and Display myDataGrid.
   myDataGrid.DataMember = "";
   myDataGrid.Location = new System.Drawing.Point(72, 32);
   myDataGrid.Name = "myDataGrid";
   myDataGrid.Size = new System.Drawing.Size(240, 200);
   myDataGrid.TabIndex = 4;
   // Add it to controls.
   Controls.Add(myDataGrid);
   CreateAndBindDataSet(myDataGrid);
   myDataGridTableStyle.MappingName = "Employee";
   // Set other properties.
   myDataGridTableStyle.AlternatingBackColor = Color.LightGray;
   // Add DataGridTableStyle instances to GridTableStylesCollection.
   myDataGridTableStyle.PreferredColumnWidth = 100;
   myColWidth.Text = "";
   myDataGrid.TableStyles.Add(myDataGridTableStyle);
   myDataGridTableStyle.PreferredColumnWidthChanged +=
         new EventHandler(MyDelegatePreferredColWidthChanged);
}

public void MyDelegatePreferredColWidthChanged(object sender, EventArgs e)
{
   MessageBox.Show("Preferred Column width has changed");
}

private void myButton_Click(object sender, System.EventArgs e)
{
   try
   {
      if( myColWidth.Text != "" )
      {
         int newwidth = myDataGridTableStyle.PreferredColumnWidth = 
            int.Parse(myColWidth.Text);
         // Dispose datagrid and datagridtablestyle and then create.
         myDataGrid.Dispose();
         myDataGridTableStyle.Dispose();
         myDataGrid = new DataGrid();
         myDataGridTableStyle = new DataGridTableStyle();
         myDataGrid.DataMember = "";
         myDataGrid.Location = new System.Drawing.Point(72, 32);
         myDataGrid.Name = "myDataGrid";
         myDataGrid.Size = new System.Drawing.Size(240, 200);
         myDataGrid.TabIndex = 4;
         Controls.Add(myDataGrid);
         CreateAndBindDataSet(myDataGrid);
         myDataGridTableStyle.MappingName = "Employee";
         // Set other properties.
         myDataGridTableStyle.AlternatingBackColor = Color.LightGray;
         // Add DataGridTableStyle instances to GridTableStylesCollection.
         myDataGridTableStyle.PreferredColumnWidth = newwidth;
         myColWidth.Text = "";
         myDataGrid.TableStyles.Add(myDataGridTableStyle);
         myDataGridTableStyle.PreferredColumnWidthChanged += 
            new EventHandler(MyDelegatePreferredColWidthChanged);
      }
      else
      {
         MessageBox.Show("Please enter a number");
      }
   }
   catch(Exception ex)
   {
      MessageBox.Show(ex.Message);
   }
}

[C++] 
private:
    void CreateAndBindDataSet(DataGrid* myDataGrid) {
        DataSet* myDataSet = new DataSet(S"myDataSet");
        DataTable* myEmpTable = new DataTable(S"Employee");
        // Create two columns, and add them to employee table.
        DataColumn* myEmpID = new DataColumn(S"EmpID", __typeof(int));
        DataColumn* myEmpName = new DataColumn(S"EmpName");
        myEmpTable->Columns->Add(myEmpID);
        myEmpTable->Columns->Add(myEmpName);
        // Add table to DataSet.
        myDataSet->Tables->Add(myEmpTable);
        // Populate table.
        DataRow* newRow1;
        // Create employee records in employee Table.
        for (int i = 1; i < 6; i++) {
            newRow1 = myEmpTable->NewRow();
            newRow1->Item[S"EmpID"] = __box(i);
            // Add row to Employee table.
            myEmpTable->Rows->Add(newRow1);
        }
        // Give each employee a distinct name.
        myEmpTable->Rows->Item[0]->Item[S"EmpName"] = S"Alpha";
        myEmpTable->Rows->Item[1]->Item[S"EmpName"] = S"Beta";
        myEmpTable->Rows->Item[2]->Item[S"EmpName"] = S"Omega";
        myEmpTable->Rows->Item[3]->Item[S"EmpName"] = S"Gamma";
        myEmpTable->Rows->Item[4]->Item[S"EmpName"] = S"Delta";
        // Bind DataGrid to DataSet.
        myDataGrid->SetDataBinding(myDataSet, S"Employee");
    }

    void Form1_Load(Object* /*sender*/, System::EventArgs* /*e*/) {
        // Set and Display myDataGrid.
        myDataGrid->DataMember = S"";
        myDataGrid->Location = System::Drawing::Point(72, 32);
        myDataGrid->Name = S"myDataGrid";
        myDataGrid->Size = System::Drawing::Size(240, 200);
        myDataGrid->TabIndex = 4;
        // Add it to controls.
        Controls->Add(myDataGrid);
        CreateAndBindDataSet(myDataGrid);
        myDataGridTableStyle->MappingName = S"Employee";
        // Set other properties.
        myDataGridTableStyle->AlternatingBackColor = Color::LightGray;
        // Add DataGridTableStyle instances to GridTableStylesCollection.
        myDataGridTableStyle->PreferredColumnWidth = 100;
        myColWidth->Text = S"";
        myDataGrid->TableStyles->Add(myDataGridTableStyle);
        myDataGridTableStyle->PreferredColumnWidthChanged += 
            new EventHandler(this, &Form1::MyDelegatePreferredColWidthChanged);
    }

public:
    void MyDelegatePreferredColWidthChanged(Object* /*sender*/, EventArgs* /*e*/) {
        MessageBox::Show(S"Preferred Column width has changed");
    }

private:
    void myButton_Click(Object* /*sender*/, System::EventArgs* /*e*/) {
        try {
            if (!myColWidth->Text->Equals(S"")) {
                Int32 newwidth = myDataGridTableStyle->PreferredColumnWidth;
                myDataGridTableStyle->PreferredColumnWidth =
                    Int32::Parse(myColWidth->Text);
                // Dispose datagrid and datagridtablestyle and then create.
                myDataGrid->Dispose();
                myDataGridTableStyle->Dispose();
                myDataGrid = new DataGrid();
                myDataGridTableStyle = new DataGridTableStyle();
                myDataGrid->DataMember = S"";
                myDataGrid->Location = System::Drawing::Point(72, 32);
                myDataGrid->Name = S"myDataGrid";
                myDataGrid->Size = System::Drawing::Size(240, 200);
                myDataGrid->TabIndex = 4;
                Controls->Add(myDataGrid);
                CreateAndBindDataSet(myDataGrid);
                myDataGridTableStyle->MappingName = S"Employee";
                // Set other properties.
                myDataGridTableStyle->AlternatingBackColor = Color::LightGray;
                // Add DataGridTableStyle instances to GridTableStylesCollection.
                myDataGridTableStyle->PreferredColumnWidth = newwidth;
                myColWidth->Text = S"";
                myDataGrid->TableStyles->Add(myDataGridTableStyle);
                myDataGridTableStyle->PreferredColumnWidthChanged += 
                    new EventHandler(this, &Form1::MyDelegatePreferredColWidthChanged);
            } else {
                MessageBox::Show(S"Please enter a number");
            }
        } catch (Exception* ex) {
            MessageBox::Show(ex->Message);
        }
    }

[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button Language Filter in the upper-left corner of the page.

Requirements

Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family

See Also

DataGridTableStyle Class | DataGridTableStyle Members | System.Windows.Forms Namespace | HeaderFont | HeaderText | PreferredRowHeight | PreferredColumnWidthChanged

Show: