非可视化自定义组件,如何获得其父窗体(或容器)

问题描述

我想自定义一个组件(非可视化的),在组件初始化时,自动获得其所在的父容器(或窗体)的句柄,请问要如何做?!PS:就象自定义控件的me.FindForm或me.Parent

解决方案

解决方案二:
他的父类应该提供默认实现吧,比如control类
解决方案三:
该回复于2008-05-09 11:14:23被版主删除
解决方案四:
我也想了解,谢谢LZ.
解决方案五:
访问父容器对象,如果是在自定义控件的设计类(比如继承System.Web.UI.Designer)中,则可以直接通过this.component访问到父容器.如果是自己开发的组件控件(设控件名为P),则它包括一个子控件(设控件名为C).其中C属性P的子控件,则在P中创建C时,可以把C的构造函数设计成如下:publicclassC{publicControlparent;publicC(Controlparent){this.parent=parent;}}

这样P的所有的子控件(如C)都能够知道它的父容器是谁.

时间: 2024-09-30 11:45:20

非可视化自定义组件,如何获得其父窗体(或容器)的相关文章

创建定制的ASP.NET AJAX非可视化客户端组件

作者基于对微软ASP.NET AJAX 1.0框架的研究,本文继续讨论如何创建一个由基类Sys.Component派生的ASP.NET AJAX非可视化客户端组件,并展示它在Web页面中的用法. 一.简介 在本文中,我们将共同讨论如何创建一个由基类Sys.Component派生的ASP.NET AJAX非可视化客户端组件,并将展示它在Web页面中的用法. 具体说来,你将学习如何实现: ◆使用prototype设计模式以JavaScript定义一个非可视化组件类. ◆把一个非可视化组件注册为一个由

使用自定义验证组件库扩展 Windows 窗体

window 摘要:数据验证是确保正常的数据捕获以及后续处理和报告的关键步骤.本文介绍了 Windows 窗体固有的程序验证基础结构,并以此为基础开发了用于提供更高效验证功能的自定义验证组件库,该验证功能与使用 ASP.NET 的验证控件相似. 下载 winforms03162004_sample.msi 示例文件. 本页内容 引言 Windows 窗体验证的主要功能 程序验证与声明性验证 建立设计时支持 模仿是最真诚的恭维 必需字段验证程序简介 BaseValidator:分治法 一个放便士,

自定义组件之属性(Property)的性质(Attribute)介绍(一)

自定义组件之 属性(Property)的性质(Attribute)介绍 属性(property)作为c#语言中一个重要的组成部分,尤其是在我们自己编写组件的时候显得更加重要.我相信大家一定对其有一定的了解.但是大家是否注意到了一个非常关键得细节问题呢?那就是在大家使用任何得组件的时候都需要通过属性浏览器给每一属性赋值,而且更加友好的是对于每种不同类型属性都会自己的形式.比如:数字类型.字符串类型是默认简单的输入的形式,而如Font.Color类型的属性则可以对话框或下拉列表框的形式.不知道大家是

Android自定义组件ListPopWindow_Android

先看一下效果: 效果就是这样,看一下实现,其实也没多难,就是想开源出来供小伙伴们使用,如有不合理地方,希望大家多多指正. 1.自定义PopWindow 首先我们分析一下,这样的效果肯定是一个PopWindow嵌套着listview,而上面的title.和下面的cancel是两个文本框,实现起来也比较简单. 然后我们在PopWindow中声明两个接口,用来回调cancel和item的点击事件 public interface OnPopItemClickListener{ void onPopIt

自定义组件及其内组件大小的正确设置

http://blog.csdn.net/xiaodao1986/article/details/8481288 一.自定义组件大小的设置 不管你怎么设置,自定义组件似乎总是match_parent.我们需要覆盖onMeasure方法,并在其内正确设置组件大小. [java] view plaincopy @Override   protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {       //注意:为

.NET应用技巧:非托管COM组件的使用

众所周知,asp.net是基于通用语言运行库创建的,也就是所谓的托管执行环境.生成的代码称为托管代码.编译器能够从源代码的描述中产生元数据信息,而运行库又从元数据中获得托管代码的信息.而我们编写的组件一般是在非托管环境下创建的,这些组件往往不包含元数据信息,那么我们怎么在托管代码中使用这些元数据信息呢? 为了在托管环境中使用非托管代码,我们首先必须手工为这些现有的组件产生元数据信息.必须有一种工具能够产生元数据.能够从某个地方获得元数据.这个元数据的发源地就是类型库,事实上,今天所有的组件都有一

在ASP.NET中使用非托管COM组件

asp.net|托管     众所周知,ASP.net是基于通用语言运行库创建的,也就是所谓的托管执行环境.生成的代码称为托管代码.编译器能够从源代码的描述中产生元数据信息,而运行库又从元数据中获得托管代码的信息.而我们编写的组件一般是在非托管环境下创建的,这些组件往往不包含元数据信息,那么我们怎么在托管代码中使用这些元数据信息呢?      为了在托管环境中使用非托管代码,我们首先必须手工为这些现有的组件产生元数据信息 .必须有一种工具能够产生元数据.能够从某个地方获得元数据.这个元数据的发源

动态改变自定义组件!

动态 1.在叶面上放上一个容器PlaceHolder 2.可以动态在容器中加载所需的自定义组件,或用户组件 示例: 现在容器中加载一个TextBox,之后回传再换为Button. 代码如下: protected System.Web.UI.WebControls.PlaceHolder PlaceHolder1; protected System.Web.UI.WebControls.Button Button1; private void Page_Load(object sender, Sy

Flex自定义组件外观

Flex 是现今最受欢迎的 RIA 开发技术之一,它凭借其优秀的用户体验获得 许多用户的青睐,因此也吸引了众多的程序员投入 Flex 学习的洪流之中.Flex 之所以如此受欢迎,一大部分原因是因为 Flex 的界面效果非常出众.Flex 提 供了自定义组件外观的众多方法,使得 Flex 程序界面丰富多彩.本文通过简单 实用的程序例子(包括冒泡信息提示框.图像圆角.动态按钮.网格背景),使 用位图.矢量图.SWF 文件自定义皮肤,使用 Mask 制作遮掩效果,讲解了其中 几种自定义组件外观方法的优