C#2005中继承DataGridViewTextBoxColumn后加入自定义属性问题?

FINAL999 2007-07-17 10:26:22
我想给DataGridView网格中的其中一个列类型(DataGridViewTextBoxColumn)加入一个自定义的属性,属性是(string Test),但每当我在属性编辑器中更改Test属性后,它都不能保存下来???要如何才可以保存更改后的值呢?它自带的属性都没问题,就我自已添加的Test属性才有问题!
我的代码如下:(我自已建了一个mDataGridViewTextBoxColumn类继承System.Windows.Forms.DataGridViewTextBoxColumn,加入自定义string类型的Test属性。之后我在Form1窗体加一个DataGridView网格,并向DataGridView网格添加一列刚才建立的mDataGridViewTextBoxColumn,更改其Test属性确定后再次进入编辑列时,发现其属性未能保存下来,仍然是空!)
using System;
using System.ComponentModel;
using System.Collections.Generic;
using System.Text;

namespace Framework
{
public class mDataGridViewTextBoxColumn : System.Windows.Forms.DataGridViewTextBoxColumn
{
private System.ComponentModel.IContainer components = null;

private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
}

public mDataGridViewTextBoxColumn()
{
InitializeComponent();
}

private string mTest = "";

[System.ComponentModel.DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Content)]
public string Test
{
get
{
return mTest;
}
set
{
mTest = value;
}
}

}
}
...全文
394 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
rotApple 2007-07-19
  • 打赏
  • 举报
回复
帮你顶~!
lovingkiss 2007-07-19
  • 打赏
  • 举报
回复
楼上开玩笑,Column和Cell而已,而且保存不住属性就是Clone的问题

列类型(DataGridViewTextBoxColumn)加入一个自定义的属性还要
继承Row和Cell???!!——你编一个自定义列然后继承一个Row我看看~~汗~~

简直胡说八道。。。
优途科技 2007-07-19
  • 打赏
  • 举报
回复
学习
可爱的排骨 2007-07-19
  • 打赏
  • 举报
回复
楼主,DataGridView里的控件都是相关调用的,你光继承COLUMN是不够的,你还得继承Row和Cell,并重写里面的调用关系,跟着Refector边看边写吧,
lovingkiss 2007-07-19
  • 打赏
  • 举报
回复
忘了MySelfColumn 的来源了,呵呵

Public Class MySelfColumn
Inherits DataGridViewColumn
Private zViewLine As String = "测试"
' Methods

Public Sub New()
MyBase.New(New MyControlCell())
End Sub
。。。。。。。。。。。。。。。。
实际上用me/this也可以,习惯了VB的写法了,这是做自定义测试时候写的。
==================================================================
博客空间:http://blog.csdn.net/lovingkiss
资源下载:http://download.csdn.net/user/lovingkiss
Email:loving-kiss@163.com
本人说明:<我的帖子我做主,结贴率保持100%>
优惠接单开发,信誉保证,Q64180940(请清楚注明业务还是技术咨询)
==================================================================
lovingkiss 2007-07-19
  • 打赏
  • 举报
回复
public override object Clone()
{
MySelfColumn MyColumn = base.Clone();
MyColumn.Text = "自定义属性";
return MyColumn;
}

这是C#的写法
lovingkiss 2007-07-19
  • 打赏
  • 举报
回复
Public Overrides Function Clone() As Object
Dim MyColumn As MySelfColumn = MyBase.Clone()
MyColumn.Text ="自定义属性"
Return MyColumn
End Function

必须重写Clone,才可以记住自定义属性;
FINAL999 2007-07-18
  • 打赏
  • 举报
回复
有那位仁兄帮一下忙啊!!!自已顶...

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧