精华内容
下载资源
问答
  • 开发自定义控件步骤
    千次阅读
    2016-02-17 17:34:51
    开发自定义控件的步骤:
    1、了解View的工作原理 
    2、 编写继承自View的子类
    3、 为自定义View类增加属性 
    4、 绘制控件 
    5、 响应用户消息 
    6 、自定义回调函数 

    一、View结构原理
    Android系统的视图结构的设计也采用了组合模式,即View作为所有图形的基类,Viewgroup对View继承扩展为视图容器类。

    View定义了绘图的基本操作
    基本操作由三个函数完成:measure()、layout()、draw(),其内部又分别包含了onMeasure()、onLayout()、onDraw()三个子方法。具体操作如下:
    1、measure操作
         measure操作主要用于计算视图的大小,即视图的宽度和长度。在view中定义为final类型,要求子类不能修改。measure()函数中又会调用下面的函数:
         (1)onMeasure(),视图大小的将在这里最终确定,也就是说measure只是对onMeasure的一个包装,子类可以覆写onMeasure()方法实现自己的计算视图大小的方式,并通过setMeasuredDimension(width, height)保存计算结果。

    2、layout操作
         layout操作用于设置视图在屏幕中显示的位置。在view中定义为final类型,要求子类不能修改。layout()函数中有两个基本操作:
         (1)setFrame(l,t,r,b),l,t,r,b即子视图在父视图中的具体位置,该函数用于将这些参数保存起来;
         (2)onLayout(),在View中这个函数什么都不会做,提供该函数主要是为viewGroup类型布局子视图用的;

    3、draw操作
         draw操作利用前两部得到的参数,将视图显示在屏幕上,到这里也就完成了整个的视图绘制工作。子类也不应该修改该方法,因为其内部定义了绘图的基本操作:
         (1)绘制背景;
         (2)如果要视图显示渐变框,这里会做一些准备工作;
         (3)绘制视图本身,即调用onDraw()函数。在view中onDraw()是个空函数,也就是说具体的视图都要覆写该函数来实现自己的显示(比如TextView在这里实现了绘制文字的过程)。而对于ViewGroup则不需要实现该函数,因为作为容器是“没有内容“的,其包含了多个子view,而子View已经实现了自己的绘制方法,因此只需要告诉子view绘制自己就可以了,也就是下面的dispatchDraw()方法;
         (4)绘制子视图,即dispatchDraw()函数。在view中这是个空函数,具体的视图不需要实现该方法,它是专门为容器类准备的,也就是容器类必须实现该方法;
         (5)如果需要(应用程序调用了setVerticalFadingEdge或者setHorizontalFadingEdge),开始绘制渐变框;
         (6)绘制滚动条;
          从上面可以看出自定义View需要最少覆写onMeasure()和onDraw()两个方法。

    二、View类的构造方法

    创建自定义控件的3种主要实现方式:
    1)继承已有的控件来实现自定义控件: 主要是当要实现的控件和已有的控件在很多方面比较类似, 通过对已有控件的扩展来满足要求。
    2)通过继承一个布局文件实现自定义控件,一般来说做组合控件时可以通过这个方式来实现。
        注意此时不用onDraw方法,在构造广告中通过inflater加载自定义控件的布局文件,再addView(view),自定义控件的图形界面就加载进来了。
    3)通过继承view类来实现自定义控件,使用GDI绘制出组件界面,一般无法通过上述两种方式来实现时用该方式。

    View( Context context)
    Simple constructor to use when creating a view from code.
    View( Context context,  AttributeSet attrs)
    Constructor that is called when inflating a view from XML.
    View( Context context,  AttributeSet attrs, int defStyle)
    Perform inflation from XML and apply a class-specific base style.


    三、自定义View增加属性的 两种方法:
    1)在View类中定义。通过构造函数中引入的AttributeSet 去查找XML布局的属性名称,然后找到它对应引用的资源ID去找值。
    案例:实现一个带文字的图片(图片、文字是onDraw方法重绘实现)

    public class MyView extends View {

    private String mtext;

    private int msrc;


    public MyView(Context context) {

    super(context);

    // TODO Auto-generated constructor stub

    }


    public MyView(Context context, AttributeSet attrs) {

    super(context, attrs);

    // TODO Auto-generated constructor stub

    int resourceId = 0;

    int textId = attrs.getAttributeResourceValue(null"Text",0);

    int srcId = attrs.getAttributeResourceValue(null"Src", 0);

    mtext = context.getResources().getText(textId).toString();

    msrc = srcId;

    }


    @Override

    protected void onDraw(Canvas canvas) {

    // TODO Auto-generated method stub

    Paint paint = new Paint();

    paint.setColor(Color.RED);

    InputStream is = getResources().openRawResource(msrc); 

            Bitmap mBitmap = BitmapFactory.decodeStream(is);

            

            int bh = mBitmap.getHeight();

            int bw = mBitmap.getWidth();

            

    canvas.drawBitmap(mBitmap, 0,0, paint);

    //canvas.drawCircle(40, 90, 15, paint);

    canvas.drawText(mtext, bw/2, 30, paint);

    }


    }



    布局文件:

    <?xml version="1.0" encoding="utf-8"?>

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

        android:layout_width="match_parent"

        android:layout_height="match_parent"

        android:orientation="vertical" >


        <com.example.myimageview2.MyView

            android:id="@+id/myView1"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content" 

            Text="@string/hello_world"

            Src="@drawable/xh"/>


    </LinearLayout>


    属性Text, Src在自定义View类的构造方法中读取。


    2)通过XML为View注册属性。与Android提供的标准属性写法一样。
    案例:  实现一个带文字说明的ImageView (ImageView+TextView组合,文字说明,可在布局文件中设置位置)

    public class MyImageView extends LinearLayout {


    public MyImageView(Context context) {

    super(context);

    // TODO Auto-generated constructor stub

    }


    public MyImageView(Context context, AttributeSet attrs) {

    super(context, attrs);

    // TODO Auto-generated constructor stub

    int resourceId = -1;

    TypedArray typedArray = context.obtainStyledAttributes(attrs,

    R.styleable.MyImageView);

    ImageView iv = new ImageView(context);

    TextView tv = new TextView(context);


    int N = typedArray.getIndexCount();

    for (int i = 0; i < N; i++) {

    int attr = typedArray.getIndex(i);


    switch (attr) {

    case R.styleable.MyImageView_Oriental:

    resourceId = typedArray.getInt(

    R.styleable.MyImageView_Oriental, 0);

    this.setOrientation(resourceId == 1 ? LinearLayout.HORIZONTAL

    : LinearLayout.VERTICAL);

    break;


    case R.styleable.MyImageView_Text:

    resourceId = typedArray.getResourceId(

    R.styleable.MyImageView_Text, 0);

    tv.setText(resourceId > 0 ? typedArray.getResources().getText(

    resourceId) : typedArray

    .getString(R.styleable.MyImageView_Text));

    break;

    case R.styleable.MyImageView_Src:

    resourceId = typedArray.getResourceId(

    R.styleable.MyImageView_Src, 0);

    iv.setImageResource(resourceId > 0 ?resourceId:R.drawable.ic_launcher);

    break;

    }


    }


    addView(iv);

    addView(tv);

    typedArray.recycle();


    }

    }


    attrs.xml进行属性声明, 文件放在values目录下

    <?xml version="1.0" encoding="utf-8"?>

    <resources>


        <declare-styleable name="MyImageView">

            <attr name="Text" format="reference|string"></attr>

            <attr name="Oriental" >

                <enum name="Horizontal" value="1"></enum>

                <enum name="Vertical" value="0"></enum>

            </attr>

            <attr name="Src" format="reference|integer"></attr>

        </declare-styleable>


    </resources>



    MainActivity的布局文件:先定义命名空间   xmlns:uview = "http://schemas.android.com/apk/res/com.example.myimageview2"
    然后可以像使用系统的属性一样使用: uview:Oriental = "Vertical"

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

        xmlns:uview="http://schemas.android.com/apk/res/com.example.myimageview2"

        xmlns:tools="http://schemas.android.com/tools"

        android:layout_width="match_parent"

        android:layout_height="match_parent"

        android:orientation="vertical"

        tools:context=".MainActivity" >


        <TextView

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="@string/hello_world" />


        <com.example.myimageview2.MyImageView

            android:id="@+id/myImageView1"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            uview:Text="这是一个图片说明" 

            uview:Src="@drawable/tw"

            uview:Oriental="Vertical">

        </com.example.myimageview2.MyImageView>


    </LinearLayout>


    四、控件绘制 onDraw()

    五、


    六、自定义View的方法
    onFinishInflate() 回调方法,当应用从XML加载该组件并用它构建界面之后调用的方法
    onMeasure() 检测View组件及其子组件的大小
    onLayout() 当该组件需要分配其子组件的位置、大小时
    onSizeChange() 当该组件的大小被改变时
    onDraw() 当组件将要绘制它的内容时
    onKeyDown 当按下某个键盘时
    onKeyUp  当松开某个键盘时
    onTrackballEvent 当发生轨迹球事件时
    onTouchEvent 当发生触屏事件时
    onWindowFocusChanged(boolean)  当该组件得到、失去焦点时
    onAtrrachedToWindow() 当把该组件放入到某个窗口时
    onDetachedFromWindow() 当把该组件从某个窗口上分离时触发的方法
    onWindowVisibilityChanged(int): 当包含该组件的窗口的可见性发生改变时触发的方法
    更多相关内容
  • 本篇文章主要介绍了用C#来实现一个step控件的方法步骤,具有很好的参考价值。下面跟着小编一起来看下吧
  • 网上的资料比较分散,我整理了一下,方便参考使用。希望有所帮助。
  • 学习初衷:在工作实际开发过程中,原有的安卓控件已不能满足实际的功能需求,而且有些应用还需要一些独特的展示效果,这时就需要自定义控件来定制控件去满足我们的需求了。 自定义控件步骤 步骤一:首先要新建一...
  • 基于Android的显示步骤控件,可定制
  • 在VC下ActiveX控件的开发可以分为三种,一种是直接用COM的API来开发,这样做显然非常的麻烦,对程序员要求也非常高...本文介绍的是采用第二种方式,即应用MFC进行桌面可视控件开发的方法步骤,开发环境则是基于VC2005。
  • Delphi 控件开发步骤

    千次阅读 2019-12-05 16:55:06
    delphi 控件开发步骤Delphi控件开发步骤1.使用Delphi IDE的 Component -> New Component 菜单2.按照向导逐步完成3.控件工程文件4.控件安装面板图标的实现5.关于无源码控件发布 Delphi控件开发步骤 本步骤基于...

    Delphi控件开发步骤

    本步骤基于delphi berlin版本。

    1.使用Delphi IDE的 Component -> New Component 菜单

    New Component

    2.按照向导逐步完成

    第一步:
    第二步:在这里插入图片描述
    第三步:在这里插入图片描述
    Component
    Class Name 输入 TAli_SMS_Component 表示控件类名称
    Palette Page 输入LW 需要安装的面板名称
    第四步:
    Install to New Packag第五步:
    Description
    完成以后就可以进入控件实现界面。

    3.控件工程文件

    {$R *.res}
    {$IFDEF IMPLICITBUILDING This IFDEF should not be used by users}
    {$ALIGN 8}
    {$ASSERTIONS ON}
    {$BOOLEVAL OFF}
    {$DEBUGINFO OFF}
    {$EXTENDEDSYNTAX ON}
    {$IMPORTEDDATA ON}
    {$IOCHECKS ON}
    {$LOCALSYMBOLS ON}
    {$LONGSTRINGS ON}
    {$OPENSTRINGS ON}
    {$OPTIMIZATION OFF}
    {$OVERFLOWCHECKS OFF}
    {$RANGECHECKS OFF}
    {$REFERENCEINFO ON}
    {$SAFEDIVIDE OFF}
    {$STACKFRAMES ON}
    {$TYPEDADDRESS OFF}
    {$VARSTRINGCHECKS ON}
    {$WRITEABLECONST OFF}
    {$MINENUMSIZE 1}
    {$IMAGEBASE $400000}
    {$DEFINE DEBUG}
    {$ENDIF IMPLICITBUILDING}
    {$DESCRIPTION '阿里云短信控件'}
    {$IMPLICITBUILD ON}

    注意工程文件中包含的:{$DESCRIPTION ‘阿里云短信控件’}

    4.控件安装面板图标的实现

    需要使用资源图标工具,本文使用的是Resource Builder 3 来完成。

    1. 首先制作一个24X24大小的4bit的图标,使用Resource Builder来制作资源文件
      在这里插入图片描述

    2. 编译生成后缀是.res的资源文件
      Compile

    3. 然后将.res文件后缀更改为:.dcr。 例如生成的文件为Ali_SMS_Component.res,则更改名称为Ali_SMS_Component.dcr

    4. 将更改后的文件放在控件文件的目录,然后把这个改名后的资源文件放在控件工程文件目录中。

    5. 在控件工程中增加这个图标资源文件。

    
    {$R *.res}
    {$R 'Ali_SMS_Component.dcr'}
    {$IFDEF IMPLICITBUILDING This IFDEF should not be used by users}
    {$ALIGN 8}
    {$ASSERTIONS ON}
    {$BOOLEVAL OFF}
    {$DEBUGINFO OFF}
    {$EXTENDEDSYNTAX ON}
    {$IMPORTEDDATA ON}
    {$IOCHECKS ON}
    {$LOCALSYMBOLS ON}
    {$LONGSTRINGS ON}

    注意工程文件中的:{$R ‘Ali_SMS_Component.dcr’}
    7. 最后正常安装即可出现图标
    ICON

    5.关于无源码控件发布

    对于值需要发布dcu文件,步希望发布源码的控件,只需要包含以下三类文件即可:
    .bpl 文件(可安装的库文件)
    .dcu 文件(编译后的中间文件)
    .dcr 图标资源文件

    有了以上三类文件之后,可以通过delphi的控件安装菜单实现bpl的安装。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    关于RBKEY:
    04uPmRCqJBCfHPkhylfm7O+JGX5ZpXywMEEZM+iDu8FfKKoeLsZ0jhyHsf0xpcwfnt4oLXgdAi9nmiK6vPCI1jChH/gll+sNm4wJoXkQ5JLKHQpsvH4bnGB5smYTzELRbFtsr8Vy9W+9sBmKIeHfLvc5axH4HgQJTnKwRqYZplJs=

    展开全文
  • 本文主要介绍如何开发一个ActiveX控件,提供接口,与相应事件挂钩。文中涉及到VARIANT,SAFEARRAY,...另外还提供了WinSock的详细开发步骤,以及如何响应网络超时,网络断开的事件方法以及在VC,VB调用该控件的方法。
  • Android系统列表控件

    2020-06-15 14:26:40
    在android系统控件中,有多个控件可以展示列表数据。 一、ListView 该组件是android中最常用的一个UI组件,用于实现在屏幕上显示多个内容,以便于我们用手指进行滑动。 ListView控件列表的形式展示具体内容,...

    在android系统控件中,有多个控件可以展示列表数据。

    一、ListView

    该组件是android中最常用的一个UI组件,用于实现在屏幕上显示多个内容,以便于我们用手指进行滑动。

    ListView控件以列表的形式展示具体内容,并且能够根据数据的长度自适应显示。如图所示:

     

    列表的显示需要三个元素:

    • 1.ListVeiw:用来展示列表的View。
    • 2.适配器:用来把数据映射到ListView上的中介。Adapter
    • 3.数据:具体的将被映射的字符串,图片,或者基本组件。

    根据列表的适配器类型,列表分为三种:ArrayAdapter,SimpleAdapter和SimpleCursorAdapter。

    • ArrayAdapter最为简单,只能展示一行字,基本不用,或极少数时候使用。
    • SimpleAdapter有最好的扩充性,可以自定义出各种效果。
    • SimpleCursorAdapter可以认为是SimpleAdapter对数据库的简单结合,可以方面的把数据库的内容以列表的形式展示出来。

    在开发过程中,往往继承使用BaseAdapter,自己来实现各种需要实现的效果和数据适配。继承BaseAdapter类后,需要重写如下几个方法:

    • getCount: 一共有多少个item展示项
    • getItem(int position):获取每一个展示项
    • getItemId(int position):获取item的id
    • getView(int position, View convertView, ViewGroup parent):每一个在屏幕内展示的view视图

    因为涉及到自定义View视图,因此往往会借助一个自定义的holder类来进行数据的刷新,事件的操作等。

    数据更新

    当数据源有更新时,需要重新设置适配器中的数据,同时调用适配器中的notifyDataSetChanged方法。

    二、GridView

    GridView 跟ListView 很类似,ListView 主要以列表形式显示数据,GridView 则是以网格形式显示数据。

    GridView主要通过使用自定义BaseAdapter来适配数据,进而显示到GridView中。使用步骤:

    • 1、准备数据源:通常是ArrayList形式。
      list = new ArrayList<Map<String, Object>>();
    • 2、为数据源设置适配器
      MyAdapter adapter = new MyAdapter();
    • 3、设置适配器
      gridView.setAdapter(adapter);

    与ListView相似,开发重点在如何自定义实现Adapter,以及如何实现交互。

    三、RecyclerView

    RecyclerView简介

    RecyclerView是support.v7包中的控件,可以说是ListView和GridView的增强升级版。

    官方对RecyclerView的描述如中说到:A flexible view for providing a limited window into a large data set。

    RecyclerView从2014年发布到现在已经很长时间了,使用已经相当普遍。

    LayoutManager

    使用上RecyclerView与Listview使用步骤基本相同,不同的是RecyclerView多了一个LayoutManager,翻译为布局管理器。

    RecyclerView有三个默认布局管理器,他们分别是:

    • LinearLayoutManager:线性管理器
    • GridLayoutManager:网格管理器
    • StaggeredGridLayoutManager:交错式网格布局

    三个布局管理器都支持横向和纵向排列以及反向滑动。如果想把RecyclerView改为横向滑动,也可以通过调用:

    mLayoutManager.setOrientation(GridLayoutManager.HORIZONTAL);

    监听及点击事件

    RecyclerView不像ListView一样提供item的点击监听,开发者需要自己实现,有两种常用的方式:

    • 为item的view设置点击事件
    • 通过recycler.addOnItemTouchListener监听

    动画

    recyclerview支持为item设置丰富的动画效果,可以通过如下方式设置动画:

    recyclerView.setItemAnimator(new DefaultItemAnimator());

    四、下拉刷新和上拉加载的原理

    无论是ListView、GridView还是RecyclerView,在实际的开发中都会有很多列表场景的使用。更为常见的是各种应用中都会使用到下拉刷新,上拉加载或者底部加载等效果。

    实现下拉刷新和上啦下载的原理:主要是通过监控控件的滑动来实现的。可以通过设置滑动监听:

    • 获取当前显示的第一个item:如果满足头部条件,显示下拉刷新控件,执行刷新操作。
    • 获取当前屏幕显示的最后一个item:如果满足底部判断条件,则加载新数据。

    addHeaderView

    可以为列表控件添加一个头view,用来实现下拉头部刷新控件的添加效果。

    addFooterView

    可以为列表控件添加一个底部的view,用来实现底部加载控件的效果。

    SwipeRefreshLayout

    在Android中提供了SwipeRefreshLayout控件,用于实现滑动刷新,使用控件可以检测纵向滑动,显示一个独特的进度条,并在您的应用中触发回调方法使用该控件时需要注意:

    • SwipeRefreshLayout只能包含一个子控件,可以是ListView或者是GridView。
    • SwipeRefreshLayout控件是Android的一个支持库中的控件,需要引入支持库然后进行使用。
      SwipeRefreshLayout能够响应刷新手势,当用户做出滑动手势时,系统会显示进度指示器并调用应用的回调方法,具体实现是:
      • SwipeRefreshLayout.OnRefreshListener:实现该接口,系统会回调该接口
      • onRefresh:OnRefreshListener接口的刷新方法,系统会在刷新时回调该方法。
      • setRefreshing:数据刷新操作结束后,调用该方法,并设置为false,调整刷新控件的状态。

    五、列表控件事件

    列表控件的交互是开发中非常重要的内容,涉及到很多控件的交互,效果的展示等。几乎所有的交互都是通过事件来完成的。

    • OnItemClickListener:listview控件的条目点击事件监听器,该监听器是一个接口,包含一个onItemClick方法。使用时可以通过列表控件的setOnItemClickListener方法设置回调。
    • OnScrollListener:列表控件的滑动事件监听器,该监听器同样是一个接口,包含两个方法,分别是:onScrollStateChanged和onScroll。列表控件有两种状态:停止状态和滑动状态,当状态发生改变进行切换时,会调用该方法;当列表控件滑动时回,会调用onScroll方法。
    • OnScrollChangeListener:视图的滑动状态改变监听器,该监听器依然是一个接口,包含一个方法,onScrollChange。该接口的要求api版版是M,即23。

    六、列表控件的常用优化方法

    • 利用好 convertView 来重用 View。ListView 的核心原理就是重用 View。ListView 中有一个回收器,Item 滑出界面的时候 View 会回收到这里,需要显示新的 Item 的时候,就尽量重用回收器里面的 View。
    • 利用好 View Type,ListView 中有几个类型的 Item,需要给每个类型创建不同的 View,这样有利于 ListView 的回收。
    • ItemView 的 Layout 层次结构尽量简单,不要嵌套太深或者太复杂。
    • 每个Item不要太高,特别是不要超过屏幕的高度。
    • 利用好滑动监听器,当列表滑动时停止操作,比如:滑动时停止加载图片,停下来再加载。
    • 使用RecycleView, ListView每次更新数据都要notifyDataSetChanged()不是特别友好,RecycleView 在性能和可定制性上都有很大的改善。
    • 善用Tag,Id等属性和方法,综合使用节省内存空间。
    • 处理好事件冲突,比如header,footer和item的事件有可能冲突的问题。

    总结,列表控件的优化是一个综合和系统的工作,在掌握常用的优化方法外,还需要结合自己的团队的业务进行优化,列表的优化没有终点,随着功能的不断迭代,系统的不断升级,优化工作也会持续存在。

    展开全文
  • C#调用activeX控件方法步骤[参考].pdf
  • Activex\web上用Activex控件开发步骤(MFC).
  • HZHControls控件库.rar

    2020-04-20 14:02:27
    HZHControls控件库HZHControls控件库,c#的winform自定义控件,对触屏具有更好的操作支持,项目是基于framework4.0,完全原生控件开发,没有使用任何第三方控件,你可以放心的用在你的项目中(winfromcontrol/winform...
  • ActiveX控件开发流程

    千次阅读 2018-12-29 14:30:36
    ActiveX控件是注册到电脑上的一个注册库文件,以ocx和dll结尾,可供第三方程序下载和在本地调用接口。下面和大家分享一下怎么通过visual studio2010创建一...1、创建OCX工程步骤 1 运行visual studio2010 ...

    ActiveX控件是注册到电脑上的一个注册库文件,以ocx和dll结尾,可供第三方程序下载和在本地调用接口。下面和大家分享一下怎么通过visual studio2010创建一个Activex工程以及怎么在ActiveX中添加自己的方法。

    工具/原料

    • 电脑

    • visual studio2010

    1、创建OCX工程步骤

    1. 1

      运行visual studio2010

      vs2010创建ActiveX工程和怎么给ActiveX添加方法

    2. 2

      新建项目

      vs2010创建ActiveX工程和怎么给ActiveX添加方法

    3. 3

      在弹出的窗口中选中MFC Activex控件

      vs2010创建ActiveX工程和怎么给ActiveX添加方法

    4. 4

      输入工程名和存储位置,点击确定

      vs2010创建ActiveX工程和怎么给ActiveX添加方法

    5. 5

      在弹出的窗口中点击完成,就完成了工程的创建

      vs2010创建ActiveX工程和怎么给ActiveX添加方法

      END

    2、给OCX添加方法

    1. 1

      打开类视图,选中_DMyOCX

      vs2010创建ActiveX工程和怎么给ActiveX添加方法

    2. 2

      右键添加方法

      vs2010创建ActiveX工程和怎么给ActiveX添加方法

    3. 3

      在弹出的窗口中编辑方法的属性及参数

      vs2010创建ActiveX工程和怎么给ActiveX添加方法

    4. 4

      点击下一步,并且完成

      vs2010创建ActiveX工程和怎么给ActiveX添加方法

    5. 5

      在MyOCXCtrl.cpp文件中就可看到我们添加的方法了

      vs2010创建ActiveX工程和怎么给ActiveX添加方法

      END

    注意事项

    • 在添加方法时一定要在类视图中添加,不可在文件中手动输入,这样会导致错误

    • 添加完方法后生成解决方案就可生成ocx结尾的控件

    •  

    • ActiveX控件打包、签名、嵌入详解

    https://www.cnblogs.com/scy251147/p/3571431.html

    展开全文
  • 【转载】C# 开发step步骤控件详解

    千次阅读 2018-09-04 16:53:35
    现在很多的javascript控件,非常的不错,其中step就是...先定义一个StepEntity类来存储步骤条节点的信息: public class StepEntity { public string Id { get; set; } public string StepName { get; set; } ...
  • C#开发step步骤控件

    千次阅读 2017-03-05 16:31:41
    现在很多的javascript控件,非常的不错,其中step就是一个,如下图所示: ...先定义一个StepEntity类来存储步骤条节点的信息: 1 public class StepEntity 2 { 3 public string Id { get; set; } 4 pu
  • VC ActiveX控件开发详细步骤说明

    热门讨论 2011-12-15 13:27:52
    本文档详细说明用VC开发ActiveX插件的详细步骤,包括工程的建立,js界面的编写、activex插件中代码的编写、js界面和activex控件之间的相互通信的方法及示例,还有详细的调试步骤
  • 1.手写控件步骤 (1)使用相应的控件类创建控件对象 (2)设置该控件的各种属性 (3)添加控件到视图中 (4)如果是button等控件,还需考虑控件的单击事件等 (5)注意:View Contollor和view的关系 2.注意点 在OC...
  • 主要介绍了C# WinForm制作异形窗体与控件的方法,结合实例形式分析了WinForm制作异形窗体与控件的原理、实现步骤与相关操作技巧,需要的朋友可以参考下
  • 主要介绍了Android开发之自定义星星评分控件RatingBar用法,结合具体实例形式分析了Android自定义评分控件的具体实现步骤以及功能、布局相关操作技巧,需要的朋友可以参考下
  • wps二次开发,com加载项,增加按钮具体操作步骤以及源代码,里面有详细步骤以及源代码
  • C++ atl控件开发详解

    2014-07-11 11:19:01
    C++ ATL控件开发相机,内涵简单控件、测试程序、开发文档,开发文档对atl开发步骤进行详细说明讲解,方法、属性、事件创建都做了说明,适合初学者。
  • 在本文中,我将展示开发Silverlight 2.0自定义控件的关键步骤
  • 利用VB开发应用程序的一般步骤

    千次阅读 2021-02-01 20:33:50
    一个VB程序也称为一个...开发步骤一般如下: 1. 创建程序的用户界面。 2. 设置界面上各个对象的属性。 3. 编写对象响应事件的程序代码。 4. 保存工程。 5. 测试应用程序,排除错误。 6. 创建可执行程序。 ...
  • Android自定义控件一般步骤

    千次阅读 2016-11-25 10:24:18
    开发自定义控件步骤: 1、了解View的工作原理  2、 编写继承自View的子类 3、 为自定义View类增加属性  4、 绘制控件  5、 响应用户消息  6 、自定义回调函数    一、View结构原理
  • C# 自定义控件开发及使用(WinForm)

    千次阅读 2021-02-07 15:57:32
    C# 自定义控件及使用实例(WPF)开发目的开发流程创建控件库项目自定义控件的使用 开发目的 在使用C# WinForm开发时,工具箱中已经提供了十分丰富的控件库,利用这些基础控件我们可以开展各类项目的开发。 但是我们...
  • C# winform 自定义控件开发

    千次阅读 2017-10-27 17:14:32
    点击下载Word文档一般而言,Visual Studio 2005中自带的几十种控件已经足够我们使用了,但是,在一些特殊的需求中,可能需要一些特殊的控件来与用户进行交互,这时,就需要我们自己开发新的、满足用户需求的控件。...
  • 主要介绍了Android开发进阶自定义控件之滑动开关实现方法,结合实例形式详细分析了Android自定义开关控件的原理、实现步骤与相关操作技巧,需要的朋友可以参考下
  • MFC .ocx控件开发

    千次阅读 2018-03-27 20:01:20
    本文将介绍ocx的含义,以及如何利用MFC创建ocx控件。 1、ocx控件的含义 OCX 是对象类别扩充组件(Object Linking and Embedding (OLE) Control Extension);...简单来说,在界面开发时,需要用到许多控件,比...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 92,925
精华内容 37,170
关键字:

列表控件开发的一般步骤