Επεξεργασία

Κοινή χρήση μέσω


DataGridTableStyle.PreferredColumnWidth Property

Definition

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

public:
 property int PreferredColumnWidth { int get(); void set(int value); };
[System.ComponentModel.TypeConverter(typeof(System.Windows.Forms.DataGridPreferredColumnWidthTypeConverter))]
public int PreferredColumnWidth { get; set; }
[<System.ComponentModel.TypeConverter(typeof(System.Windows.Forms.DataGridPreferredColumnWidthTypeConverter))>]
member this.PreferredColumnWidth : int with get, set
Public Property PreferredColumnWidth As Integer

Property Value

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

Attributes

Examples

The following code example demonstrates the use of this member.

private:
   void CreateAndBindDataSet( DataGrid^ myDataGrid )
   {
      DataSet^ myDataSet = gcnew DataSet( "myDataSet" );
      DataTable^ myEmpTable = gcnew DataTable( "Employee" );

      // Create two columns, and add them to employee table.
      DataColumn^ myEmpID = gcnew DataColumn( "EmpID",int::typeid );
      DataColumn^ myEmpName = gcnew 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 );
      }
      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" );
   }

   void Form1_Load( Object^ /*sender*/, System::EventArgs^ /*e*/ )
   {
      // Set and Display myDataGrid.
      myDataGrid->DataMember = "";
      myDataGrid->Location = System::Drawing::Point( 72, 32 );
      myDataGrid->Name = "myDataGrid";
      myDataGrid->Size = 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 += gcnew EventHandler( this, &Form1::MyDelegatePreferredColWidthChanged );
   }

private:
   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->Equals( "" ) )
         {
            Int32 newwidth = myDataGridTableStyle->PreferredColumnWidth;
            myDataGridTableStyle->PreferredColumnWidth = Int32::Parse( myColWidth->Text );

            // Dispose datagrid and datagridtablestyle and then create.
            delete myDataGrid;
            delete myDataGridTableStyle;
            myDataGrid = gcnew DataGrid;
            myDataGridTableStyle = gcnew DataGridTableStyle;
            myDataGrid->DataMember = "";
            myDataGrid->Location = System::Drawing::Point( 72, 32 );
            myDataGrid->Name = "myDataGrid";
            myDataGrid->Size = 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 += gcnew EventHandler( this, &Form1::MyDelegatePreferredColWidthChanged );
         }
         else
         {
            MessageBox::Show( "Please enter a number" );
         }
      }
      catch ( Exception^ ex ) 
      {
         MessageBox::Show( ex->Message );
      }
   }
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);
}

private 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);
   }
}
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


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


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


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

Applies to

See also