2
这一点已经让我难住了一小会儿。我使用一些合理的默认值创建派生的System.Windows.Forms.DataGridView
控件。现在要清楚地说明它们只是默认值,应该可以在设计器中进行更改。截至目前我有默认值的控制构造被设置:在哪里设置自定义控件的默认设置
using System.Drawing;
using System.Windows.Forms;
namespace TruckSmart.Controls
{
/// <summary>
/// An implementation of a System.Windows.Forms.DataGridView with sensible default values.
/// </summary>
public class DataGrid : System.Windows.Forms.DataGridView
{
/// <summary>
/// Initializes a new instance of the TruckSmart.Controls.DataGrid class.
/// </summary>
public DataGrid()
{
AllowUserToAddRows = false;
AllowUserToDeleteRows = false;
AllowUserToOrderColumns = false;
AllowUserToResizeColumns = false;
AllowUserToResizeRows = false;
AutoGenerateColumns = false;
AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells;
AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCells;
BackgroundColor = SystemColors.Window;
BorderStyle = BorderStyle.Fixed3D;
ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.None;
Margin = new Padding(0);
MultiSelect = false;
ReadOnly = true;
RowHeadersVisible = false;
SelectionMode = DataGridViewSelectionMode.FullRowSelect;
AlternatingRowsDefaultCellStyle = new DataGridViewCellStyle()
{
BackColor = Color.FromKnownColor(KnownColor.AliceBlue)
};
ColumnHeadersDefaultCellStyle = new DataGridViewCellStyle()
{
WrapMode = DataGridViewTriState.False
};
}
}
}
使用构造函数中的主要问题是,当我关闭在Visual Studio和重新打开我的窗体设计它的构造函数被调用而且我之前在设计器中所做的任何更改都会重置。是否有一个特殊的地方我应该把这些默认值?
@CrisMcLaughlin这个工程。看起来这是最简单的解决方案。我不知道为什么有些人不喜欢使用'new'来影响基本成员,但在某些情况下(例如这种情况)它真的很有用。 –
事实证明,它确实有效。我设置了错误的属性......再次感谢! –