DataGridTableStyle.PreferredColumnWidth 属性

获取或设置在显示新网格时创建列所用的宽度。

**命名空间:**System.Windows.Forms
**程序集:**System.Windows.Forms(在 system.windows.forms.dll 中)

语法

声明
<LocalizableAttribute(True)> _
Public Property PreferredColumnWidth As Integer
用法
Dim instance As DataGridTableStyle
Dim value As Integer

value = instance.PreferredColumnWidth

instance.PreferredColumnWidth = value
[LocalizableAttribute(true)] 
public int PreferredColumnWidth { get; set; }
[LocalizableAttribute(true)] 
public:
property int PreferredColumnWidth {
    int get ();
    void set (int value);
}
/** @property */
public int get_PreferredColumnWidth ()

/** @property */
public void set_PreferredColumnWidth (int value)
public function get PreferredColumnWidth () : int

public function set PreferredColumnWidth (value : int)

属性值

显示新网格时创建列所用的宽度。

示例

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


Private 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
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:
   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", int.class.ToType());
        DataColumn myEmpName = new DataColumn("EmpName");

        myEmpTable.get_Columns().Add(myEmpID);
        myEmpTable.get_Columns().Add(myEmpName);

        // Add table to DataSet.
        myDataSet.get_Tables().Add(myEmpTable);

        // Populate table.
        DataRow newRow1;

        // Create employee records in employee Table.
        for (int i = 1; i < 6; i++) {
            newRow1 = myEmpTable.NewRow();
            newRow1.set_Item("EmpID", (Int32)i);

            // Add row to Employee table.
            myEmpTable.get_Rows().Add(newRow1);
        }

        // Give each employee a distinct name.
        myEmpTable.get_Rows().get_Item(0).set_Item("EmpName", "Alpha");
        myEmpTable.get_Rows().get_Item(1).set_Item("EmpName", "Beta");
        myEmpTable.get_Rows().get_Item(2).set_Item("EmpName", "Omega");
        myEmpTable.get_Rows().get_Item(3).set_Item("EmpName", "Gamma");
        myEmpTable.get_Rows().get_Item(4).set_Item("EmpName", "Delta");

        // Bind DataGrid to DataSet.
        myDataGrid.SetDataBinding(myDataSet, "Employee");
    } //CreateAndBindDataSet

    private void Form1_Load(Object sender, System.EventArgs e)
    {
        // Set and Display myDataGrid.
        myDataGrid.set_DataMember("");
        myDataGrid.set_Location(new System.Drawing.Point(72, 32));
        myDataGrid.set_Name("myDataGrid");
        myDataGrid.set_Size(new System.Drawing.Size(240, 200));
        myDataGrid.set_TabIndex(4);

        // Add it to controls.
        get_Controls().Add(myDataGrid);
        CreateAndBindDataSet(myDataGrid);
        myDataGridTableStyle.set_MappingName("Employee");

        // Set other properties.
        myDataGridTableStyle.set_AlternatingBackColor(Color.get_LightGray());

        // Add DataGridTableStyle instances to GridTableStylesCollection.
        myDataGridTableStyle.set_PreferredColumnWidth(100);
        myColWidth.set_Text("");
        myDataGrid.get_TableStyles().Add(myDataGridTableStyle);
        myDataGridTableStyle.add_PreferredColumnWidthChanged(
            new EventHandler(MyDelegatePreferredColWidthChanged));
    } //Form1_Load

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

    private void myButton_Click(Object sender, System.EventArgs e)
    {
        try {
            if (!(myColWidth.get_Text().Equals(""))) {
                myDataGridTableStyle.set_PreferredColumnWidth(
                    System.Convert.ToInt32(myColWidth.get_Text()));

                int newWidth = myDataGridTableStyle.get_PreferredColumnWidth();

                // Dispose datagrid and datagridtablestyle and then create.
                myDataGrid.Dispose();
                myDataGridTableStyle.Dispose();
                myDataGrid = new DataGrid();
                myDataGridTableStyle = new DataGridTableStyle();
                myDataGrid.set_DataMember("");
                myDataGrid.set_Location(new System.Drawing.Point(72, 32));
                myDataGrid.set_Name("myDataGrid");
                myDataGrid.set_Size(new System.Drawing.Size(240, 200));
                myDataGrid.set_TabIndex(4);
                get_Controls().Add(myDataGrid);
                CreateAndBindDataSet(myDataGrid);
                myDataGridTableStyle.set_MappingName("Employee");

                // Set other properties.
                myDataGridTableStyle.set_AlternatingBackColor(
                    Color.get_LightGray());

                // Add DataGridTableStyle instances to 
                // GridTableStylesCollection.
                myDataGridTableStyle.set_PreferredColumnWidth(newWidth);
                myColWidth.set_Text("");
                myDataGrid.get_TableStyles().Add(myDataGridTableStyle);
                myDataGridTableStyle.add_PreferredColumnWidthChanged(
                    new EventHandler(MyDelegatePreferredColWidthChanged));
            }
            else {
                MessageBox.Show("Please enter a number");
            }
        }
        catch(System.Exception ex) {
            MessageBox.Show(ex.get_Message());
        }
    } //myButton_Click
} //Form1

平台

Windows 98、Windows 2000 SP4、Windows CE、Windows Millennium Edition、Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1、1.0

请参见

参考

DataGridTableStyle 类
DataGridTableStyle 成员
System.Windows.Forms 命名空间
DataGridTableStyle.HeaderFont 属性
DataGridColumnStyle.HeaderText 属性
PreferredRowHeight
PreferredColumnWidthChanged