首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 自定义控件的自定义属性编写
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • hit040420224
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 揭贴率:
    发表于:2008-08-20 20:09:32 楼主
    编写了一个含textBox的自定义控件,定义了一个PJCT_Name的属性用来取出textBox的值,并用于外界的访问
    代码如下:
    private string project_name;

            /// <summary>
            /// 添加属性PJCT_Name
            /// </summary>
            public string PJCT_Name
            {
                get { return project_name; }
                set { project_name = value;
                    value = PJCT_NAME.Text; }
            }
    在此自定义控件的按钮事件中调试查看PJCT_Name的值为空
            private void search_Click(object sender, EventArgs e)
            {
                string aa = this.PJCT_Name;
                MessageBox.Show(aa);
            }
    感觉自定义属性的set{}有问题,但不知如何改,
    请高手帮忙
    30  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • youzelin
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 20:37:141楼 得分:0
    引用楼主 hit040420224 的帖子:
            private void search_Click(object sender, EventArgs e)
            {
                string aa = this.PJCT_Name;
                MessageBox.Show(aa);
            }


    在此之前,你并未对 this.PJCT_Name 属性赋值,直接取值当然为空

    另外,在属性中对 value 赋值是没有意义的
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zhy20045923
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 21:15:482楼 得分:0
    你并未对 this.PJCT_Name 属性赋值,你可以设置一个默认值
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • sp1234
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 23:04:303楼 得分:0
    一种写法是:

            public string PJCT_Name
            {
                get {EnsureChildControls(); return PJCT_NAME.Text; }
                set {EnsureChildControls();PJCT_NAME.Text=value; }
            }

    另外一种是保留project_name变量,但是在set中并不设置给PJCT_NAME.Text,而是在控件的PreRender过程中才将
      PJCT_NAME.Text=project_name;
    这种方法中无需执行EnsureChildControls()。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • huoxudong125
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 23:56:554楼 得分:0
    set { project_name = value;
                    value = PJCT_NAME.Text; }
    这样也行?
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved