自定义DataGridView复制列 [英] Custom DataGridView duplicated columns

查看:138
本文介绍了自定义DataGridView复制列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经通过从DataGridView进行子类化创建了一个自定义的Winforms控件。



自定义datagrid视图定义了自己的列和映射。



然而,无论何时将其拖出工具箱,在表单的设计表面上,表单为自定义控件中的每个列重新创建一个列控件(DataGridViewTextBoxColumn),这样我的最终列数就会增加一倍。



整个想法是,控件已经自我意识,所以我不需要表单做任何事情。很明显,我忽视了一些简单的东西,但是我比Windows更加Web,而且没有任何立即突破的原因。





自定义Datagrid:

  partial class StrategyGrid 
{
private System.ComponentModel.IContainer components = null;


protected override void Dispose(bool disposal)
{
if(disposal&&(components!= null))
{
components.Dispose();
}
base.Dispose(处置);
}

#region组件设计器生成代码
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle13 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle14 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle15 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle16 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle17 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle18 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle19 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle20 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle21 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle22 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle23 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle24 = new System.Windows.Forms.DataGridViewCellStyle();
this.zquantityDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.zbuyPricePerShareDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.zbuyParcelSubtotalDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.zbuyBrokerageFeeAmountDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.xbuyParcelTotalDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.xbreakevenPricePerShareDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.xtargetPricePerShareDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.xtargetParcelTotalDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.xTargetNetProfitAmt = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.xTargetNetProfitPct = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.xMarketPriceNetProfitAmt = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.xMarketPriceNetProfitPct = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.xColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
((System.ComponentModel.ISupportInitialize)(this.bindingSource1))。BeginInit();
((System.ComponentModel.ISupportInitialize)(this))。BeginInit();
this.SuspendLayout();
//
// zquantityDataGridViewTextBoxColumn
//
this.zquantityDataGridViewTextBoxColumn.DataPropertyName =Quantity;
dataGridViewCellStyle13.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleRight;
this.zquantityDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle13;
this.zquantityDataGridViewTextBoxColumn.HeaderText =Qty;
this.zquantityDataGridViewTextBoxColumn.MinimumWidth = 85;
this.zquantityDataGridViewTextBoxColumn.Name =zquantityDataGridViewTextBoxColumn;
this.zquantityDataGridViewTextBoxColumn.Width = 85;
//
// zbuyPricePerShareDataGridViewTextBoxColumn
//
this.zbuyPricePerShareDataGridViewTextBoxColumn.DataPropertyName =BuyPricePerShare;
dataGridViewCellStyle14.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleRight;
dataGridViewCellStyle14.Format =N2;
dataGridViewCellStyle14.NullValue = null;
this.zbuyPricePerShareDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle14;
this.zbuyPricePerShareDataGridViewTextBoxColumn.HeaderText =Buy Price;
this.zbuyPricePerShareDataGridViewTextBoxColumn.MinimumWidth = 85;
this.zbuyPricePerShareDataGridViewTextBoxColumn.Name =zbuyPricePerShareDataGridViewTextBoxColumn;
this.zbuyPricePerShareDataGridViewTextBoxColumn.ToolTipText =每股购买价格;
this.zbuyPricePerShareDataGridViewTextBoxColumn.Width = 85;
//
// zbuyParcelSubtotalDataGridViewTextBoxColumn
//
this.zbuyParcelSubtotalDataGridViewTextBoxColumn.DataPropertyName =BuyParcelSubtotal;
dataGridViewCellStyle15.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleRight;
dataGridViewCellStyle15.Format =C2;
dataGridViewCellStyle15.NullValue = null;
this.zbuyParcelSubtotalDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle15;
this.zbuyParcelSubtotalDataGridViewTextBoxColumn.HeaderText =Buy Sub;
this.zbuyParcelSubtotalDataGridViewTextBoxColumn.MinimumWidth = 85;
this.zbuyParcelSubtotalDataGridViewTextBoxColumn.Name =zbuyParcelSubtotalDataGridViewTextBoxColumn;
this.zbuyParcelSubtotalDataGridViewTextBoxColumn.Visible = false;
this.zbuyParcelSubtotalDataGridViewTextBoxColumn.Width = 85;
//
// zbuyBrokerageFeeAmountDataGridViewTextBoxColumn
//
this.zbuyBrokerageFeeAmountDataGridViewTextBoxColumn.DataPropertyName =BuyBrokerageFeeAmount;
dataGridViewCellStyle16.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleRight;
dataGridViewCellStyle16.Format =C0;
dataGridViewCellStyle16.NullValue = null;
this.zbuyBrokerageFeeAmountDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle16;
this.zbuyBrokerageFeeAmountDataGridViewTextBoxColumn.HeaderText =Rates;
this.zbuyBrokerageFeeAmountDataGridViewTextBoxColumn.MinimumWidth = 75;
this.zbuyBrokerageFeeAmountDataGridViewTextBoxColumn.Name =zbuyBrokerageFeeAmountDataGridViewTextBoxColumn;
this.zbuyBrokerageFeeAmountDataGridViewTextBoxColumn.ToolTipText =Buy Brokerage Rates;
this.zbuyBrokerageFeeAmountDataGridViewTextBoxColumn.Visible = false;
this.zbuyBrokerageFeeAmountDataGridViewTextBoxColumn.Width = 75;
//
// xbuyParcelTotalDataGridViewTextBoxColumn
//
this.xbuyParcelTotalDataGridViewTextBoxColumn.DataPropertyName =BuyParcelTotal;
dataGridViewCellStyle17.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleRight;
dataGridViewCellStyle17.Format =N0;
dataGridViewCellStyle17.NullValue = null;
this.xbuyParcelTotalDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle17;
this.xbuyParcelTotalDataGridViewTextBoxColumn.HeaderText =Buy Price Total;
this.xbuyParcelTotalDataGridViewTextBoxColumn.MinimumWidth = 85;
this.xbuyParcelTotalDataGridViewTextBoxColumn.Name =xbuyParcelTotalDataGridViewTextBoxColumn;
this.xbuyParcelTotalDataGridViewTextBoxColumn.ToolTipText =购买总包裹费用;
this.xbuyParcelTotalDataGridViewTextBoxColumn.Width = 85;
//
// xbreakevenPricePerShareDataGridViewTextBoxColumn
//
this.xbreakevenPricePerShareDataGridViewTextBoxColumn.DataPropertyName =BreakevenPricePerShare;
dataGridViewCellStyle18.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleRight;
dataGridViewCellStyle18.Format =N2;
dataGridViewCellStyle18.NullValue = null;
this.xbreakevenPricePerShareDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle18;
this.xbreakevenPricePerShareDataGridViewTextBoxColumn.HeaderText =B / E Price;
this.xbreakevenPricePerShareDataGridViewTextBoxColumn.MinimumWidth = 100;
this.xbreakevenPricePerShareDataGridViewTextBoxColumn.Name =xbreakevenPricePerShareDataGridViewTextBoxColumn;
this.xbreakevenPricePerShareDataGridViewTextBoxColumn.ToolTipText =每股盈亏平衡;
//
// xtargetPricePerShareDataGridViewTextBoxColumn
//
this.xtargetPricePerShareDataGridViewTextBoxColumn.DataPropertyName =TargetPricePerShare;
dataGridViewCellStyle19.Al​​ignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleRight;
dataGridViewCellStyle19.Format =N2;
dataGridViewCellStyle19.NullValue = null;
this.xtargetPricePerShareDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle19;
this.xtargetPricePerShareDataGridViewTextBoxColumn.HeaderText =Target Price;
this.xtargetPricePerShareDataGridViewTextBoxColumn.MinimumWidth = 100;
this.xtargetPricePerShareDataGridViewTextBoxColumn.Name =xtargetPricePerShareDataGridViewTextBoxColumn;
this.xtargetPricePerShareDataGridViewTextBoxColumn.ToolTipText =每股目标价;
//
// xtargetParcelTotalDataGridViewTextBoxColumn
//
this.xtargetParcelTotalDataGridViewTextBoxColumn.DataPropertyName =TargetParcelTotal;
dataGridViewCellStyle20.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleRight;
dataGridViewCellStyle20.Format =N0;
dataGridViewCellStyle20.NullValue = null;
this.xtargetParcelTotalDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle20;
this.xtargetParcelTotalDataGridViewTextBoxColumn.HeaderText =Target Price NV;
this.xtargetParcelTotalDataGridViewTextBoxColumn.MinimumWidth = 100;
this.xtargetParcelTotalDataGridViewTextBoxColumn.Name =xtargetParcelTotalDataGridViewTextBoxColumn;
this.xtargetParcelTotalDataGridViewTextBoxColumn.ToolTipText =目标价格净值;
//
// xTargetNetProfitAmt
//
this.xTargetNetProfitAmt.DataPropertyName =TargetNetProfitAmt;
dataGridViewCellStyle21.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleRight;
dataGridViewCellStyle21.Format =N2;
dataGridViewCellStyle21.NullValue =0;
this.xTargetNetProfitAmt.DefaultCellStyle = dataGridViewCellStyle21;
this.xTargetNetProfitAmt.HeaderText =Target NP Amt;
this.xTargetNetProfitAmt.MinimumWidth = 100;
this.xTargetNetProfitAmt.Name =xTargetNetProfitAmt;
//
// xTargetNetProfitPct
//
this.xTargetNetProfitPct.DataPropertyName =TargetNetProfitPct;
dataGridViewCellStyle22.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleRight;
this.xTargetNetProfitPct.DefaultCellStyle = dataGridViewCellStyle22;
this.xTargetNetProfitPct.HeaderText =Target NP Pct;
this.xTargetNetProfitPct.MinimumWidth = 100;
this.xTargetNetProfitPct.Name =xTargetNetProfitPct;
//
// xMarketPriceNetProfitAmt
//
this.xMarketPriceNetProfitAmt.DataPropertyName =MarketPriceNetProfitAmt;
dataGridViewCellStyle23.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleRight;
dataGridViewCellStyle23.Format =N2;
dataGridViewCellStyle23.NullValue =0;
this.xMarketPriceNetProfitAmt.DefaultCellStyle = dataGridViewCellStyle23;
this.xMarketPriceNetProfitAmt.HeaderText =市场价格NP Amt;
this.xMarketPriceNetProfitAmt.MinimumWidth = 100;
this.xMarketPriceNetProfitAmt.Name =xMarketPriceNetProfitAmt;
//
// xMarketPriceNetProfitPct
//
this.xMarketPriceNetProfitPct.DataPropertyName =MarketPriceNetProfitPct;
dataGridViewCellStyle24.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleRight;
dataGridViewCellStyle24.Format =N2;
dataGridViewCellStyle24.NullValue = null;
this.xMarketPriceNetProfitPct.DefaultCellStyle = dataGridViewCellStyle24;
this.xMarketPriceNetProfitPct.HeaderText =市场价格NP Pct;
this.xMarketPriceNetProfitPct.MinimumWidth = 100;
this.xMarketPriceNetProfitPct.Name =xMarketPriceNetProfitPct;
this.xMarketPriceNetProfitPct.ReadOnly = true;
//
// xColumn2
//
this.xColumn2.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
this.xColumn2.HeaderText =;
this.xColumn2.Name =xColumn2;
this.xColumn2.ReadOnly = true;
//
// bindingSource1
//
this.bindingSource1.DataSource = typeof(FlatShareTradePlanList);
//
// StrategyGrid
//
this.AutoGenerateColumns = false;
this.BackgroundColor = System.Drawing.Color.Black;
this.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn [] {
this.zquantityDataGridViewTextBoxColumn,
this.zbuyPricePerShareDataGridViewTextBoxColumn,
this.zbuyParcelSubtotalDataGridViewTextBoxColumn,
this .zbuyBrokerageFeeAmountDataGridViewTextBoxColumn,
this.xbuyParcelTotalDataGridViewTextBoxColumn,
this.xbreakevenPricePerShareDataGridViewTextBoxColumn,
this.xtargetPricePerShareDataGridViewTextBoxColumn,
this.xtargetParcelTotalDataGridViewTextBoxColumn,
this.xTargetNetProfitAmt,
this.xTargetNetProfitPct ,
this.xMarketPriceNetProfitAmt,
this.xMarketPriceNetProfitPct,
this.xColumn2});
this.Cursor = System.Windows.Forms.Cursors.Arrow;
this.MultiSelect = false;
this.Name =StrategyGridView;
this.RowHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Sunken;
this.RowHeadersVisible = false;
this.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
this.Size = new System.Drawing.Size(1193,401);
this.CellFormatting + = new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.entryStrategyGridView_CellFormatting);
((System.ComponentModel.ISupportInitialize)(this.bindingSource1))。EndInit();
((System.ComponentModel.ISupportInitialize)(this))。EndInit();
this.ResumeLayout(false);

}

#endregion

private System.Windows.Forms.DataGridViewTextBoxColumn zquantityDataGridViewTextBoxColumn;
private System.Windows.Forms.DataGridViewTextBoxColumn zbuyPricePerShareDataGridViewTextBoxColumn;
private System.Windows.Forms.DataGridViewTextBoxColumn zbuyParcelSubtotalDataGridViewTextBoxColumn;
private System.Windows.Forms.DataGridViewTextBoxColumn zbuyBrokerageFeeAmountDataGridViewTextBoxColumn;
private System.Windows.Forms.DataGridViewTextBoxColumn xbuyParcelTotalDataGridViewTextBoxColumn;
private System.Windows.Forms.DataGridViewTextBoxColumn xbreakevenPricePerShareDataGridViewTextBoxColumn;
private System.Windows.Forms.DataGridViewTextBoxColumn xtargetPricePerShareDataGridViewTextBoxColumn;
private System.Windows.Forms.DataGridViewTextBoxColumn xtargetParcelTotalDataGridViewTextBoxColumn;
private System.Windows.Forms.DataGridViewTextBoxColumn xTargetNetProfitAmt;
private System.Windows.Forms.DataGridViewTextBoxColumn xTargetNetProfitPct;
private System.Windows.Forms.DataGridViewTextBoxColumn xMarketPriceNetProfitAmt;
private System.Windows.Forms.DataGridViewTextBoxColumn xMarketPriceNetProfitPct;
private System.Windows.Forms.DataGridViewTextBoxColumn xColumn2;
private System.Windows.Forms.BindingSource bindingSource1;


}

当拖动到窗体生成窗体以下内容是InitializeComponent:

  private StrategyGrid strategyGrid1; 
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn3;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn4;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn5;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn6;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn7;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn8;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn9;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn10;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn11;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn12;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn13;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn14;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn15;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn28;

不知道从哪里读取这些列的要求,但它是错误的。它们已经存在于自定义控件中。我认为可能有些事情要做AccessModifiers,但似乎无法使用它。

解决方案

好像你没有分配列的这些列中的 DataPropertyName 如果手动创建列并将DataSrouce分配给数据网格,则会自动生成不匹配的列。在 DataPropertyName 的更多信息和示例。 datapropertyname(v = vs.110).aspxrel =nofollow> MSDN


I've created a custom Winforms control by subclassing from the DataGridView.

The custom datagrid view defines it's own columns and mappings.

However whenever I drag it off the toolbox and onto the design surface of a form, the form recreates a column control (DataGridViewTextBoxColumn) for each column in the custom control, such that I end up with double the number of columns I should have.

The whole idea is that the control is already "self aware" so I don't need the form to do anything. Clearly I've overlooked something simple but I'm more Web than Windows and nothing immediately stands out as the cause for this.

Custom Datagrid:

 partial class StrategyGrid
{
        private System.ComponentModel.IContainer components = null;


        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Component Designer generated code
        private void InitializeComponent()
        {
            this.components = new System.ComponentModel.Container();
            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle13 = new System.Windows.Forms.DataGridViewCellStyle();
            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle14 = new System.Windows.Forms.DataGridViewCellStyle();
            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle15 = new System.Windows.Forms.DataGridViewCellStyle();
            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle16 = new System.Windows.Forms.DataGridViewCellStyle();
            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle17 = new System.Windows.Forms.DataGridViewCellStyle();
            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle18 = new System.Windows.Forms.DataGridViewCellStyle();
            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle19 = new System.Windows.Forms.DataGridViewCellStyle();
            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle20 = new System.Windows.Forms.DataGridViewCellStyle();
            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle21 = new System.Windows.Forms.DataGridViewCellStyle();
            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle22 = new System.Windows.Forms.DataGridViewCellStyle();
            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle23 = new System.Windows.Forms.DataGridViewCellStyle();
            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle24 = new System.Windows.Forms.DataGridViewCellStyle();
            this.zquantityDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
            this.zbuyPricePerShareDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
            this.zbuyParcelSubtotalDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
            this.zbuyBrokerageFeeAmountDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
            this.xbuyParcelTotalDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
            this.xbreakevenPricePerShareDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
            this.xtargetPricePerShareDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
            this.xtargetParcelTotalDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
            this.xTargetNetProfitAmt = new System.Windows.Forms.DataGridViewTextBoxColumn();
            this.xTargetNetProfitPct = new System.Windows.Forms.DataGridViewTextBoxColumn();
            this.xMarketPriceNetProfitAmt = new System.Windows.Forms.DataGridViewTextBoxColumn();
            this.xMarketPriceNetProfitPct = new System.Windows.Forms.DataGridViewTextBoxColumn();
            this.xColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn();
            this.bindingSource1 = new System.Windows.Forms.BindingSource(this.components);
            ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this)).BeginInit();
            this.SuspendLayout();
            // 
            // zquantityDataGridViewTextBoxColumn
            // 
            this.zquantityDataGridViewTextBoxColumn.DataPropertyName = "Quantity";
            dataGridViewCellStyle13.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleRight;
            this.zquantityDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle13;
            this.zquantityDataGridViewTextBoxColumn.HeaderText = "Qty";
            this.zquantityDataGridViewTextBoxColumn.MinimumWidth = 85;
            this.zquantityDataGridViewTextBoxColumn.Name = "zquantityDataGridViewTextBoxColumn";
            this.zquantityDataGridViewTextBoxColumn.Width = 85;
            // 
            // zbuyPricePerShareDataGridViewTextBoxColumn
            // 
            this.zbuyPricePerShareDataGridViewTextBoxColumn.DataPropertyName = "BuyPricePerShare";
            dataGridViewCellStyle14.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleRight;
            dataGridViewCellStyle14.Format = "N2";
            dataGridViewCellStyle14.NullValue = null;
            this.zbuyPricePerShareDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle14;
            this.zbuyPricePerShareDataGridViewTextBoxColumn.HeaderText = "Buy Price";
            this.zbuyPricePerShareDataGridViewTextBoxColumn.MinimumWidth = 85;
            this.zbuyPricePerShareDataGridViewTextBoxColumn.Name = "zbuyPricePerShareDataGridViewTextBoxColumn";
            this.zbuyPricePerShareDataGridViewTextBoxColumn.ToolTipText = "Buy price per share";
            this.zbuyPricePerShareDataGridViewTextBoxColumn.Width = 85;
            // 
            // zbuyParcelSubtotalDataGridViewTextBoxColumn
            // 
            this.zbuyParcelSubtotalDataGridViewTextBoxColumn.DataPropertyName = "BuyParcelSubtotal";
            dataGridViewCellStyle15.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleRight;
            dataGridViewCellStyle15.Format = "C2";
            dataGridViewCellStyle15.NullValue = null;
            this.zbuyParcelSubtotalDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle15;
            this.zbuyParcelSubtotalDataGridViewTextBoxColumn.HeaderText = "Buy Sub";
            this.zbuyParcelSubtotalDataGridViewTextBoxColumn.MinimumWidth = 85;
            this.zbuyParcelSubtotalDataGridViewTextBoxColumn.Name = "zbuyParcelSubtotalDataGridViewTextBoxColumn";
            this.zbuyParcelSubtotalDataGridViewTextBoxColumn.Visible = false;
            this.zbuyParcelSubtotalDataGridViewTextBoxColumn.Width = 85;
            // 
            // zbuyBrokerageFeeAmountDataGridViewTextBoxColumn
            // 
            this.zbuyBrokerageFeeAmountDataGridViewTextBoxColumn.DataPropertyName = "BuyBrokerageFeeAmount";
            dataGridViewCellStyle16.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleRight;
            dataGridViewCellStyle16.Format = "C0";
            dataGridViewCellStyle16.NullValue = null;
            this.zbuyBrokerageFeeAmountDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle16;
            this.zbuyBrokerageFeeAmountDataGridViewTextBoxColumn.HeaderText = "Rates";
            this.zbuyBrokerageFeeAmountDataGridViewTextBoxColumn.MinimumWidth = 75;
            this.zbuyBrokerageFeeAmountDataGridViewTextBoxColumn.Name = "zbuyBrokerageFeeAmountDataGridViewTextBoxColumn";
            this.zbuyBrokerageFeeAmountDataGridViewTextBoxColumn.ToolTipText = "Buy Brokerage Rates";
            this.zbuyBrokerageFeeAmountDataGridViewTextBoxColumn.Visible = false;
            this.zbuyBrokerageFeeAmountDataGridViewTextBoxColumn.Width = 75;
            // 
            // xbuyParcelTotalDataGridViewTextBoxColumn
            // 
            this.xbuyParcelTotalDataGridViewTextBoxColumn.DataPropertyName = "BuyParcelTotal";
            dataGridViewCellStyle17.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleRight;
            dataGridViewCellStyle17.Format = "N0";
            dataGridViewCellStyle17.NullValue = null;
            this.xbuyParcelTotalDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle17;
            this.xbuyParcelTotalDataGridViewTextBoxColumn.HeaderText = "Buy Price Total";
            this.xbuyParcelTotalDataGridViewTextBoxColumn.MinimumWidth = 85;
            this.xbuyParcelTotalDataGridViewTextBoxColumn.Name = "xbuyParcelTotalDataGridViewTextBoxColumn";
            this.xbuyParcelTotalDataGridViewTextBoxColumn.ToolTipText = "Buy Total Parcel Cost";
            this.xbuyParcelTotalDataGridViewTextBoxColumn.Width = 85;
            // 
            // xbreakevenPricePerShareDataGridViewTextBoxColumn
            // 
            this.xbreakevenPricePerShareDataGridViewTextBoxColumn.DataPropertyName = "BreakevenPricePerShare";
            dataGridViewCellStyle18.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleRight;
            dataGridViewCellStyle18.Format = "N2";
            dataGridViewCellStyle18.NullValue = null;
            this.xbreakevenPricePerShareDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle18;
            this.xbreakevenPricePerShareDataGridViewTextBoxColumn.HeaderText = "B/E Price";
            this.xbreakevenPricePerShareDataGridViewTextBoxColumn.MinimumWidth = 100;
            this.xbreakevenPricePerShareDataGridViewTextBoxColumn.Name = "xbreakevenPricePerShareDataGridViewTextBoxColumn";
            this.xbreakevenPricePerShareDataGridViewTextBoxColumn.ToolTipText = "Breakeven price per share";
            // 
            // xtargetPricePerShareDataGridViewTextBoxColumn
            // 
            this.xtargetPricePerShareDataGridViewTextBoxColumn.DataPropertyName = "TargetPricePerShare";
            dataGridViewCellStyle19.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleRight;
            dataGridViewCellStyle19.Format = "N2";
            dataGridViewCellStyle19.NullValue = null;
            this.xtargetPricePerShareDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle19;
            this.xtargetPricePerShareDataGridViewTextBoxColumn.HeaderText = "Target Price";
            this.xtargetPricePerShareDataGridViewTextBoxColumn.MinimumWidth = 100;
            this.xtargetPricePerShareDataGridViewTextBoxColumn.Name = "xtargetPricePerShareDataGridViewTextBoxColumn";
            this.xtargetPricePerShareDataGridViewTextBoxColumn.ToolTipText = "Target price per share";
            // 
            // xtargetParcelTotalDataGridViewTextBoxColumn
            // 
            this.xtargetParcelTotalDataGridViewTextBoxColumn.DataPropertyName = "TargetParcelTotal";
            dataGridViewCellStyle20.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleRight;
            dataGridViewCellStyle20.Format = "N0";
            dataGridViewCellStyle20.NullValue = null;
            this.xtargetParcelTotalDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle20;
            this.xtargetParcelTotalDataGridViewTextBoxColumn.HeaderText = "Target Price NV";
            this.xtargetParcelTotalDataGridViewTextBoxColumn.MinimumWidth = 100;
            this.xtargetParcelTotalDataGridViewTextBoxColumn.Name = "xtargetParcelTotalDataGridViewTextBoxColumn";
            this.xtargetParcelTotalDataGridViewTextBoxColumn.ToolTipText = "Target Price Net Value";
            // 
            // xTargetNetProfitAmt
            // 
            this.xTargetNetProfitAmt.DataPropertyName = "TargetNetProfitAmt";
            dataGridViewCellStyle21.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleRight;
            dataGridViewCellStyle21.Format = "N2";
            dataGridViewCellStyle21.NullValue = "0";
            this.xTargetNetProfitAmt.DefaultCellStyle = dataGridViewCellStyle21;
            this.xTargetNetProfitAmt.HeaderText = "Target NP Amt";
            this.xTargetNetProfitAmt.MinimumWidth = 100;
            this.xTargetNetProfitAmt.Name = "xTargetNetProfitAmt";
            // 
            // xTargetNetProfitPct
            // 
            this.xTargetNetProfitPct.DataPropertyName = "TargetNetProfitPct";
            dataGridViewCellStyle22.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleRight;
            this.xTargetNetProfitPct.DefaultCellStyle = dataGridViewCellStyle22;
            this.xTargetNetProfitPct.HeaderText = "Target NP Pct";
            this.xTargetNetProfitPct.MinimumWidth = 100;
            this.xTargetNetProfitPct.Name = "xTargetNetProfitPct";
            // 
            // xMarketPriceNetProfitAmt
            // 
            this.xMarketPriceNetProfitAmt.DataPropertyName = "MarketPriceNetProfitAmt";
            dataGridViewCellStyle23.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleRight;
            dataGridViewCellStyle23.Format = "N2";
            dataGridViewCellStyle23.NullValue = "0";
            this.xMarketPriceNetProfitAmt.DefaultCellStyle = dataGridViewCellStyle23;
            this.xMarketPriceNetProfitAmt.HeaderText = "Market Price NP Amt";
            this.xMarketPriceNetProfitAmt.MinimumWidth = 100;
            this.xMarketPriceNetProfitAmt.Name = "xMarketPriceNetProfitAmt";
            // 
            // xMarketPriceNetProfitPct
            // 
            this.xMarketPriceNetProfitPct.DataPropertyName = "MarketPriceNetProfitPct";
            dataGridViewCellStyle24.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleRight;
            dataGridViewCellStyle24.Format = "N2";
            dataGridViewCellStyle24.NullValue = null;
            this.xMarketPriceNetProfitPct.DefaultCellStyle = dataGridViewCellStyle24;
            this.xMarketPriceNetProfitPct.HeaderText = "Market Price NP Pct";
            this.xMarketPriceNetProfitPct.MinimumWidth = 100;
            this.xMarketPriceNetProfitPct.Name = "xMarketPriceNetProfitPct";
            this.xMarketPriceNetProfitPct.ReadOnly = true;
            // 
            // xColumn2
            // 
            this.xColumn2.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
            this.xColumn2.HeaderText = "";
            this.xColumn2.Name = "xColumn2";
            this.xColumn2.ReadOnly = true;
            // 
            // bindingSource1
            // 
            this.bindingSource1.DataSource = typeof(FlatShareTradePlanList);
            // 
            // StrategyGrid
            // 
            this.AutoGenerateColumns = false;
            this.BackgroundColor = System.Drawing.Color.Black;
            this.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
            this.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
            this.zquantityDataGridViewTextBoxColumn,
            this.zbuyPricePerShareDataGridViewTextBoxColumn,
            this.zbuyParcelSubtotalDataGridViewTextBoxColumn,
            this.zbuyBrokerageFeeAmountDataGridViewTextBoxColumn,
            this.xbuyParcelTotalDataGridViewTextBoxColumn,
            this.xbreakevenPricePerShareDataGridViewTextBoxColumn,
            this.xtargetPricePerShareDataGridViewTextBoxColumn,
            this.xtargetParcelTotalDataGridViewTextBoxColumn,
            this.xTargetNetProfitAmt,
            this.xTargetNetProfitPct,
            this.xMarketPriceNetProfitAmt,
            this.xMarketPriceNetProfitPct,
            this.xColumn2});
            this.Cursor = System.Windows.Forms.Cursors.Arrow;
            this.MultiSelect = false;
            this.Name = "StrategyGridView";
            this.RowHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Sunken;
            this.RowHeadersVisible = false;
            this.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
            this.Size = new System.Drawing.Size(1193, 401);
            this.CellFormatting += new System.Windows.Forms.DataGridViewCellFormattingEventHandler(this.entryStrategyGridView_CellFormatting);
            ((System.ComponentModel.ISupportInitialize)(this.bindingSource1)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this)).EndInit();
            this.ResumeLayout(false);

        }

        #endregion

        private System.Windows.Forms.DataGridViewTextBoxColumn zquantityDataGridViewTextBoxColumn;
        private System.Windows.Forms.DataGridViewTextBoxColumn zbuyPricePerShareDataGridViewTextBoxColumn;
        private System.Windows.Forms.DataGridViewTextBoxColumn zbuyParcelSubtotalDataGridViewTextBoxColumn;
        private System.Windows.Forms.DataGridViewTextBoxColumn zbuyBrokerageFeeAmountDataGridViewTextBoxColumn;
        private System.Windows.Forms.DataGridViewTextBoxColumn xbuyParcelTotalDataGridViewTextBoxColumn;
        private System.Windows.Forms.DataGridViewTextBoxColumn xbreakevenPricePerShareDataGridViewTextBoxColumn;
        private System.Windows.Forms.DataGridViewTextBoxColumn xtargetPricePerShareDataGridViewTextBoxColumn;
        private System.Windows.Forms.DataGridViewTextBoxColumn xtargetParcelTotalDataGridViewTextBoxColumn;
        private System.Windows.Forms.DataGridViewTextBoxColumn xTargetNetProfitAmt;
        private System.Windows.Forms.DataGridViewTextBoxColumn xTargetNetProfitPct;
        private System.Windows.Forms.DataGridViewTextBoxColumn xMarketPriceNetProfitAmt;
        private System.Windows.Forms.DataGridViewTextBoxColumn xMarketPriceNetProfitPct;
        private System.Windows.Forms.DataGridViewTextBoxColumn xColumn2;
        private System.Windows.Forms.BindingSource bindingSource1;


    }

When dragging onto a form the form generates the following insides it's InitializeComponent:

  private StrategyGrid strategyGrid1;
    private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn3;
    private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn4;
    private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn5;
    private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn6;
    private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn7;
    private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn8;
    private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn9;
    private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn10;
    private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn11;
    private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn12;
    private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn13;
    private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn14;
    private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn15;
    private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn28;

Not sure where it's reading this "requirement" of having these columns from... but it's wrong. They are already present within the custom control. I thought maybe something to do AccessModifiers but can't seem to work it out.

解决方案

It seems like you have not assigned Column's DataPropertyName in those columns. if you have created columns manually and assigning DataSrouce to the data grid the unmatched column will be generated automatically. Get more information and example about DataPropertyName on MSDN

这篇关于自定义DataGridView复制列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆