精华内容
下载资源
问答
  • Symbian OS: 创建自定义控件Symbian OS: 创建自定义控件Symbian OS: 创建自定义控件Symbian OS: 创建自定义控件Symbian OS: 创建自定义控件
  • 创建自定义控件

    千次阅读 2008-10-07 08:33:00
    创建自定义控件来源: http://www.codeproject.com/KB/miscctrl/CustomControl.aspx代码下载: http://www.codeproject.com/KB/miscctrl/CustomControl/CustomControl.zip介绍在前一篇文章中...

    创建自定义控件<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

    来源: http://www.codeproject.com/KB/miscctrl/CustomControl.aspx

    代码下载: http://www.codeproject.com/KB/miscctrl/CustomControl/CustomControl.zip

    介绍

    在前一篇文章中(http://www.codeproject.com/miscctrl/subclassdemo.asp)中,我将一个公共窗口控件进行了之类划分,目的是为了修饰其行为或者说是扩展其功能。有时候,你只能将公共窗口控件扩展到这样的底部。我遇到的一个例子是一个比较普遍的话题即需要一个格网控件并且编辑tabular数据。我对ClistCtrl进行了之类划分,并扩展使其能够进行子项编辑、多行元素、按首字母排序以及很多其他的功能。但是,深究起来,它仍然是一个列表控件,重点是看起来我需要写更多的代码去停止控件的表现而不是如我实际所做的为其加上功能。

    我需要从乱写开始,从基类开始开始工作,从而提供我需要的功能别且不需要任何我不需要的特征和不利条件。所以从自定义控件开始吧。

    创建自定义控件类

    创建一个自定义控件同对普通窗口控件进行之类划分非常类似。你需要从已存在的类中继承一个新类并且重载基类的函数以达到你想要的功能。

    本例中我们将从CWnd类中继承一个类,因为该类提供了我们需要的最少功能,没有多余的无用函数。

    第一步是从选择的generic CWnd基类中继承一个新类。本例中我们将创建一个显示位图的自定义控件,并命名为CbitmapViewer。显然,已经有一个Cstatic类型的类可用于显示位图,但是本例的目的是将可能多的方法展示给“不守本分”的程序员。如下图:

    <?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

    在你的类中,你应该添加WM_PAINTWM_ERASEBKGND消息的句柄。为了能够初始化已经创建的窗口我已经添加了一个PreSubclassWindow的重载函数。请去上一篇文章中查看PreSubclassWindow函数。如图:

     

     

    为了在控件中显示位图,添加了一个名为SetBitmap的函数。我们不仅仅是天才的美国程序员同时富有想象力(雷人)

    对于本文来说,内部的实现代码并不重要但是为了完整性也包括在下面了:

    在类中添加一个Cbitmap的实例以及函数SetBitmap声明。

    在实现文件中添加SetBitmap的实现函数,并且添加WM_PAINTWM_ERASEBKGND消息句柄:

     

     

     

     

     

     

    制作自定义控件

    现在已有一个类允许我们载入并显示一个位图,但是实际上我们还没有办法使用这个类。在创建控件时有两种选择:动态方式条用Create函数或者用Visual Studio的资源编辑器创建对话框模板。

    由于我们的类是继承自CWnd类所以我们可以使用CWnd::Create来动态的创建控件。例如,在对话框的OnInitDialog函数中添加一下的代码:

    其中,m_ViewerCbitmapViewer类的实例对象,定义在对话框的头文件中。IDB_BITMAP1是位图资源的ID号。这两句代码的作用是创建控件并显示位图。

    但是,如果想要把控件放在一个用Visual Studio资源编辑器创建的对话框模板中又该如何做呢?对于这种情况,我们需要使用AfxRegisterClass函数注册一个窗口类。注册一个类的好处是我们能够指定背景颜色,光标类型和类类型。具体请查阅AfxRegisterWndClass

    在本例中,我们将注册一个简单的类“MFCBitmapViewerCtrl”。我们只需要注册该类一次,为了简便我们只需在类的构造函数中写这几行代码即可:

     

     

     

     

     

    在我们的例子中,动态创建有所不同:

    这样将能确保正确的窗口风格、光标和颜色。当然为了自定义控件写一个新的Create函数也是值得的这样用户将不必要记住窗口类的名称。例如:

    为了在对话框资源中定制控件,只需要在对话框中拉出一个自定义控件即可。如下图:

     

    接着在控件属性对话框中,将类名称改为“MFCBitmapViewerCtrl”。

     

    后一步就是将一个变量同控件连接起来。在对话框类中简单定义一个CbitmapViewer类型的变量(如,m_Viewer)并且在DoDataExchange函数中加入一下代码:

    通过调用SubclassWindow函数,DDX_Control连接类变量m_Viewer与控件IDIDC_CUSTOM1。在对话框“MFCBitmapViewerCtrl”资源中通过自定义控件能够创建由CbitmapViewer::RegisterWindowClass所展示的功能。DDX_Control函数能将CbitmapViewer和预先的窗口连接在一起。

    编译并执行,你会看到你已经创建了一个自定义控件。

     

    许可

    本文及说附带的代码与文件,执行CPOL许可。

    关于作者

    Chris MaunderCodeProject的合作创办者,管理者及首席编辑。从1988年来就开始编程,他的角色多种多样。同时他还是微软VC的全球及加拿大MVP

    他的编程语言包括C/C++C#SQLMFCASPASP.NET,更多的是FORTRAN

    Chris出生在澳大利亚。

    职位:创业者

    公司:The Code Project

    出生地:加拿大

    展开全文
  • 创建自定义控件对应的对象 创建自定义控件对应的布局件 主Activiy中的布局文件中使用 自定义视图activity_mainxml Android 布局中很多时候系统自带的控件不能满足我们的需求 需要使用自定义控件。 按照以下三个...

    创建自定义控件

    Android 布局中很多时候系统自带的控件不能满足我们的需求
    需要使用自定义控件。

    按照以下三个步骤,可以自定义控件:以创建自定义titlebar控件为例
    准备工作:创建一个app案例工程,不在赘述。

    效果图:

    TitleBar

    1. 创建自定义控件对应的对象

    • 重写构造方法
    • 加载布局文件
    • 设置监听事件
    
    public class TitleBar extends LinearLayout implements View.OnClickListener {
        private Button bt_title_back;
        private Button bt_title_edit;
        private Button  tv_title_text;
    
        private Context mycontext;
    // 在此构造方法中初始化视图
        public TitleBar(Context context, @Nullable AttributeSet attrs) {
            super(context, attrs);
            this.mycontext = context;
    
            LayoutInflater.from(context).inflate(R.layout.diy_title,this);
    
            bt_title_back = (Button) findViewById(R.id.bt_title_back);
            bt_title_edit = (Button) findViewById(R.id.bt_title_edit);
    
            bt_title_back.setOnClickListener(this); //通过实现监听接口的方式设置监听
            bt_title_edit.setOnClickListener(this);
    
    
        }
    //监听方法
        @Override
        public void onClick(View v) {
            if(v==bt_title_back) {
                Toast.makeText(mycontext, "返回", Toast.LENGTH_SHORT).show();
            }else if(v ==bt_title_edit) {
                Toast.makeText(mycontext, "编辑", Toast.LENGTH_SHORT).show();
            }
        }
    }

    2. 创建自定义控件对应的布局件

    布局视图:
    TitleBar

    布局文件:diy_title.xml

    <?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="wrap_content"
        android:background="@android:color/darker_gray"
        android:orientation="horizontal">
    
    
        <Button
            android:id="@+id/bt_title_back"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="0"
            android:text="返回" />
    
        <TextView
            android:id="@+id/tv_title_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center"
            android:text="标题栏"
            android:textSize="30sp" />
    
        <Button
    
            android:id="@+id/bt_title_edit"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="0"
            android:text="编辑" />
    
    
    </LinearLayout>
    

    3. 主Activiy中的布局文件中使用 自定义视图:activity_main.xml

    <com.example.a02diycontroller.ui.TitleBar
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
    ></com.example.a02diycontroller.ui.TitleBar>
    
    展开全文
  •  在《在VS2008中创建自定义控件(三)在网页中添加自定义控件》和《在VS2008中创建自定义控件(四)为自定义控件添加默认值》中介绍的自定义控件都是直接继承了TextBox服务器控件的自定义控件,事实上,asp.net中...

    本文目的:

    创建一个不是继承其他服务器控件的完全自定义控件。

     


     

     

        在《在VS2008中创建自定义控件(三)在网页中添加自定义控件》和《在VS2008中创建自定义控件(四)为自定义控件添加默认值》中介绍的自定义控件都是直接继承了TextBox服务器控件的自定义控件,事实上,asp.net中允许创建一个完全的自定义控件,也就是不从任何一个服务器控件中继承的自定义控件。

     

        首先,我们在自定义控件项目中添加一个新的“asp.net服务器控件”,命名为“myCustomControl.cs”,如下图所示。

     

        添加完之后,VS会自动为myCustomControl.cs添加一些代码,如下图所示:

        从上图中我们可以看出,在默认情况下,VS让自定义控件继承了WebControl类,这个类是所有控件的基类。如果你不想让自定义控件继承任何一个服务器控件的话,那么你就可以让你的自定义控件继承这个类。

        WebControl类在默认情况下,将会生成一对封闭的<span></span>标签,你可以将需要生成的代码放在这对标签里(不过这是后话了)。

     

        现在,我们在网站项目里添加一个Default.aspx文件,在设计视图里将自定义的myCustomControl控件拖入到网页中,此时Default.aspx的源代码如下所示。

     

        我们仔细看一下上图中的第二个圆圈中的文字,这段文字也是由VS自动生成的,而生成这段文字的依据是在自定义控件的cs文件中,如下所示。

     

        从上图中我们可以看出,网页源代码中的内容是根本上图的ToolboxData属性值产生的,而该项属性值中的{0}就是前面我们定义的别名。

     

        这是一个最简单的自定义控件,而这个控件的作用只是在网页的相应位置添加一个<span></span>标签,我们可以生成解决方案后在浏览器中查看一下运行结果——当然从运行结果中,我们什么也看不到,不过我们可以看一下生成的网页的源代码,如下图所示。

     

        从上图中我们可以看到这个自定义控件的最后生成的代码为“<span id="myCustomControl1"></span>”。

    ===================================================================

    原创不容易,转载请注明出处:http://hi.csdn.net/smallfools

    相关链接:

    1. 在VS2008中创建自定义控件(一)创建网站项目和自定义控件项目
    2. 在VS2008中创建自定义控件(二)创建自定义控件并将其添加到工具箱中
    3. 在VS2008中创建自定义控件(三)在网页中添加自定义控件
    4. 在VS2008中创建自定义控件(四)为自定义控件添加默认值
    5. 在VS2008中创建自定义控件(五)修改tagprefix
    6. 在VS2008中创建自定义控件(六)创建完全自定义控件
    7. 在VS2008中创建自定义控件(七)自定义控件的中常用到的特性
    8. 在VS2008中创建自定义控件(八)输出HTML代码
    9. 在VS2008中创建自定义控件(九)添加属性
    10. 在VS2008中创建自定义控件(十)添加枚举型属性
    11. 在VS2008中创建自定义控件(十一)添加在属性窗口中可折叠的属性(一)
    12. 在VS2008中创建自定义控件(十二)添加在属性窗口中可折叠的属性(二)
    13. 在VS2008中创建自定义控件(十三)添加内镶属性
    14. 在VS2008中创建自定义控件(十四)内镶属性与内联属性的优先级
    15. 在VS2008中创建自定义控件(十五)创建控件时出错(未能对属性XXX设置XXX)的解决方法

    ===================================================================

    展开全文
  •  接上文《在VS2008中创建自定义控件(一)创建网站项目和自定义控件项目》,下图是添加了自定义控件项目后“解决方案资源管理器”中的结果。      从上图中我们可以看出,在创建项目时,

    本文目的:

    1、创建一个自定义控件。

    2、将自定义控件添加到工具箱中,以便调用。

    本文的最终结果如下图所示。

     


     

     

        接上文《在VS2008中创建自定义控件(一)创建网站项目和自定义控件项目》,下图是添加了自定义控件项目后“解决方案资源管理器”中的结果。

     

     

        从上图中我们可以看出,在创建项目时,VS已经为我们创建了一个名为“ServerControl1”的自定义控件。这个控件我们现在不去管它,我们现在要自己添加一个自定义控件,这个自定义控件和文本框是一个样,只不过要添加该控件时,文本框架中会显示默认的文字(不用我们每次都设这个默认值)。添加方法如下所示:

     

        1、右击“YundaoControls”项目,在弹出的快捷键菜单中选择“添加”-->“新项”,在弹出的对话框中选择“ASP.NET服务器控件”,并输入名称。如下图所示。

     

     

        2、VS会自动在yundaoTextBox.cs中文件添加内容,如下所示。

    [c-sharp] view plaincopy
    1. using System;  
    2. using System.Collections.Generic;  
    3. using System.ComponentModel;  
    4. using System.Linq;  
    5. using System.Text;  
    6. using System.Web;  
    7. using System.Web.UI;  
    8. using System.Web.UI.WebControls;  
    9. namespace YundaoControls  
    10. {  
    11.     [DefaultProperty("Text")]  
    12.     [ToolboxData("<{0}:yundaoTextBox runat=server></{0}:yundaoTextBox>")]  
    13.     public class yundaoTextBox : WebControl  
    14.     {  
    15.         [Bindable(true)]  
    16.         [Category("Appearance")]  
    17.         [DefaultValue("")]  
    18.         [Localizable(true)]  
    19.         public string Text  
    20.         {  
    21.             get  
    22.             {  
    23.                 String s = (String)ViewState["Text"];  
    24.                 return ((s == null) ? String.Empty : s);  
    25.             }  
    26.             set  
    27.             {  
    28.                 ViewState["Text"] = value;  
    29.             }  
    30.         }  
    31.         protected override void RenderContents(HtmlTextWriter output)  
    32.         {  
    33.             output.Write(Text);  
    34.         }  
    35.     }  
    36. }  
     

        以上代码这此就不过多地解释了,下面只说明需要修改的几个地方。

        a、因为我们的目的是添加一个自定义的文本框,所以,这个类应该承继TextBox类,因此,将“public class yundaoTextBox : WebControl”改为“public class yundaoTextBox : TextBox”。

        b、由于TextBox类中包括了Text属性,所以,要将yundaoTextBox的Text属性重写。将“public string Text”改为“public override string Text”。

        修改完后的代码如下所示(我加了些注释):

    [c-sharp] view plaincopy
    1. using System;  
    2. using System.Collections.Generic;  
    3. using System.ComponentModel;  
    4. using System.Linq;  
    5. using System.Text;  
    6. using System.Web;  
    7. using System.Web.UI;  
    8. using System.Web.UI.WebControls;  
    9. namespace YundaoControls  
    10. {  
    11.     [DefaultProperty("Text")]  
    12.     [ToolboxData("<{0}:yundaoTextBox runat=server></{0}:yundaoTextBox>")]  
    13.     public class yundaoTextBox : TextBox  
    14.     {  
    15.         /// <summary>  
    16.         /// 实现Text属性  
    17.         /// </summary>  
    18.         [Bindable(true)]  
    19.         [Category("Appearance")]  
    20.         [DefaultValue("")]  
    21.         [Localizable(true)]  
    22.         public override string Text  
    23.         {  
    24.             get  
    25.             {  
    26.                 String s = (String)ViewState["Text"];  
    27.                 return ((s == null) ? String.Empty : s);  
    28.             }  
    29.             set  
    30.             {  
    31.                 ViewState["Text"] = value;  
    32.             }  
    33.         }  
    34.         /// <summary>  
    35.         /// 重写RenderContents方法  
    36.         /// </summary>  
    37.         /// <param name="output"></param>  
    38.         protected override void RenderContents(HtmlTextWriter output)  
    39.         {  
    40.             //输出流  
    41.             output.Write(Text);  
    42.         }  
    43.     }  
    44. }  
     

     

       3、生成解决方案。

     

        如果解决方案生成后没有什么错误的话,就可以将自定控件添加到工具箱中了。添加方法如下所示:

        1、右击网站项目(第一个项目),在弹出的快捷菜单中选择“添加引用”,如下图所示。

     

       2、在弹出的对话框架中选择“项目”选项卡,如下图所示,VS已经自动将YundaoControls的DLL添加进出,此时,可以直接单击“确定”按钮。

     

        3、在网站项目里(第一个项目)打开一个网页文件,并打开其“设计”视图(一定要打开“设计”视图哟),再点开工具箱,此时可以看到工具箱里多了一个“YundaoControls组件”选项卡,如下图所示,这个选项卡下有两个控件。这两个组件一个是前面VS生成的ServerControl1自定义控件,另一个就是前面我们添加的“yundaoTextBox”自定义控件。

     

     

     

    ===================================================================

    原创不容易,转载请注明出处:http://hi.csdn.net/smallfools

    相关链接:

    1. 在VS2008中创建自定义控件(一)创建网站项目和自定义控件项目
    2. 在VS2008中创建自定义控件(二)创建自定义控件并将其添加到工具箱中
    3. 在VS2008中创建自定义控件(三)在网页中添加自定义控件
    4. 在VS2008中创建自定义控件(四)为自定义控件添加默认值
    5. 在VS2008中创建自定义控件(五)修改tagprefix
    6. 在VS2008中创建自定义控件(六)创建完全自定义控件
    7. 在VS2008中创建自定义控件(七)自定义控件的中常用到的特性
    8. 在VS2008中创建自定义控件(八)输出HTML代码
    9. 在VS2008中创建自定义控件(九)添加属性
    10. 在VS2008中创建自定义控件(十)添加枚举型属性
    11. 在VS2008中创建自定义控件(十一)添加在属性窗口中可折叠的属性(一)
    12. 在VS2008中创建自定义控件(十二)添加在属性窗口中可折叠的属性(二)
    13. 在VS2008中创建自定义控件(十三)添加内镶属性
    14. 在VS2008中创建自定义控件(十四)内镶属性与内联属性的优先级
    15. 在VS2008中创建自定义控件(十五)创建控件时出错(未能对属性XXX设置XXX)的解决方法

    ===================================================================

    展开全文
  • Duilib 创建自定义控件

    千次阅读 2017-02-12 17:30:27
    用Duilib开发界面时,很多情况下库自带的控件不满足需求,就需要基于Duilib建立自定义...我简单写一篇博客,把创建自定义控件的完整过程,和一些注意事项说明一下。另外说一下如果把win32的子窗体封装为控件,希望能
  • 1 创建自定义控件及自定义事件 /// <summary> /// 演示用的自定义控件 /// </summary> public class ExtButton : Button { public ExtButton() { base.Click += ExtButton_Click;...
  • Android Studio 创建自定义控件

    千次阅读 2019-05-09 17:31:34
    我们知道,当系统控件并不能满足我们的需求时,我们就需要来创建自定义控件,主要有两种方法 (1)引入布局 下面来自定义一个控件,iPhone的标题栏,创建一个标题栏并不是什么难事,加入两个button一个TextView就行...
  • C# VS创建自定义控件流程

    千次阅读 2020-04-08 20:34:14
    winform VS创建自定义控件流程 一、打开VS创建 Windows 窗体控件库 二、打开工具箱,往窗体添加两个控件表示创建的新控件 三、菜单栏选择生成 -> 重新生成解决方法 四、项目的bin目录下的Debug目录下就生成了...
  • CSharp开发自定义控件类库并测试的简单例子 最近想研究一下怎么编写CSharp的自定义控件,在此记录一下学习过程: 首先讲一下我的解决方案工程的组成: 首先打开VS(我的是VS2015)新建一个Windows窗体应用程序,...
  • 创建自定义控件 自定义控件代码 其实就是把这段代码加载到了主活动里 inflate(R.layout.title,this)//获取布局 //第一个参数加载布局id 第二个参数父布局 button.setOnClickListener{//操作布局按钮 val ...
  • 百度地图api之创建自定义控件

    千次阅读 2018-12-12 17:44:54
    百度地图api,创建自定义控件 js里边添加控件代码 function addControl(){ function zoomControl(){ this.defaultAnchor = BMAP_ANCHOR_TOP_RIGHT //表示控件定位 右上角 this.defaultOffset = new BMap.Size...
  • 创建自定义控件学习

    2015-04-09 15:04:39
    引入布局:  include 元素 指定layout属性即可 2.创建自定义控件:  扩展控件,重写构建器//如果是Layout搭配适配LayoutInflater.inflate方法 布局指定可以直接传类
  •  接上文《在VS2008中创建自定义控件(二)创建自定义控件并将其添加到工具箱中》,在工具箱中添加自定义控件之后,我们就可以像使用服务器控件一样,直接拖到网页中使用了。如下图所示。    从上图中...
  •  接上文《在VS2008中创建自定义控件(三)在网页中添加自定义控件》,我们添加了一个自定义控件,为了方便起见,这个自定义控件仅仅只是继承了TextBox服务器控件的属性和方法,并没有其他功能。事实上,添加的...
  • 创建自定义控件(含有自定义属性)

    千次阅读 2014-05-05 22:20:06
    创建自定义控件(含有自定义属性)的步骤 自定义了一个LinearLayout,含有一个titles属性,给里面的两个TextView设置文本。 1. 自定义类MyLinearLayout继承LinearLayout 因为要添加自定义的属性,那么就使用...
  • 创建自定义控件控件和布局结构要创建控件应当了解一下控件和布局的继承结构,一下是他们的继承结构: 可以看到,我们所用的所有控件都是直接或间接继承自 View的,所用的所有布局都是 直接或间接继承自 ...
  • duilib学习记录之创建自定义控件

    千次阅读 2016-01-13 15:56:29
    用Duilib开发界面时,很多情况下库自带的控件不满足需求,就需要基于Duilib建立自定义控件(自绘...我简单写一篇博客,把创建自定义控件的完整过程,和一些注意事项说明一下。另外说一下如果把win32的子窗体封装为控件
  • 首先声明,用户控件和自定义控件是不同滴。用户控件通常都是使用现有的控件进行组合,从而实现一些常用功能,比如说文本框、密码框、验证框和按钮的组合,从而实现一些...那么,要怎么样才能创建自定义控件,又要怎么样
  • duilib创建自定义控件

    千次阅读 2018-01-03 16:25:02
    在群里还有一些刚刚接触duilib的朋友们问到duilib自定义控件的问题,这里我转载一篇redrain大佬的博文。主要是这篇文章写的太好了,我们直接参考理解就好,我写的肯定没这个好。原文地址:...
  • WinForm创建自定义控件

    万次阅读 2017-05-03 10:33:54
    虽然VS为我们提供了很多控件可以使用,但有时候...自定义控件分为三种  1、组合控件(CompositeControls):在原有控件的基础上根据需要进行组合  2、扩展控件(ExtendedControls):继承自原有控件,添加一些新的
  • 直接上实例:创建自定义标题栏 1.新建一个布局title.xml 2.在activity_main.xml文件中,通过下面这句代码即可引入自定义的布局 <inclued layout= "@layout/title"> 3. 引入布局文件确实解决了代码重复的问题...
  • 我们也可以利用上面的继承结构来创建自定义控件。 新建项目UICustomViews 创建一个自定义的标题栏 一般程序中可能很多活动都需要一个这样的标题栏, 但在每个活动的布局中都编写同样的标题栏代码会导致重复, ...
  • Labview-创建自定义控件

    千次阅读 2018-12-19 10:14:19
    如何制作一个好看酷酷的自定义控件呢? 以开关为例,我们先添加一个labview中自带的确定开关控件   之后右键该控件--高级--自定义                             之后我们会...
  • step1 自定义属性的声明和获取 分析需要的自定义属性,比如位置position,...在layout的xml文件中对自定义控件进行使用 step2 实现创建的类中的方法 onMeasure(ViewGroup)对父控件以及子控件的宽高以及显示位
  • VS中创建自定义控件

    千次阅读 2019-08-09 21:01:54
    第二步:在同一个解决方案中创建一个服务控件项目 2.1 再次创建一个asp.net web应用程序。如图: 2.2 然后在这个项目下创建一个Web窗体服务器控件 第三步:编辑为我想要的控件 在这个我这个控件为textbox,所以这...
  • 用户此时当然要改自定义控件里的各种代码的,这里只是为了阐释怎样新建一个自定义控件所以没改。 注意这里会产生两个警告,解决办法见我的另一篇博文https://blog.csdn.net/qq_16597387/article/details/10454...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 189,427
精华内容 75,770
关键字:

创建自定义控件