精华内容
下载资源
问答
  • 2022-02-24 20:42:39

    基础知识

    控件(Widget)

    • 控件(Widget)的概念类似于DOM中的元素对象
    • 手机屏幕上显示的整个页面就是由很多不同的控件组成的
      常见的控件:
      TextView 显示文字(“android.widget.TextView”)
      ImageView 显示图片(“android.widget.ImageView”)
      EditText 输入框
      Button 按钮,可附带图片
      CheckBox 复选框
    • 每个控件有其属性,例如:
      className 类名,表示控件类型(“android.widget.TextView”等)
      packageName 包名,表示控件所在的应用包(“com.tencent.mobileqq”)
      clickable 控件是否可点击
      editable 控件是否可编辑
      longClickable 控件是否可长按
      bounds 控件在屏幕上的范围,当控件无法点击,用这个属性获取坐标
      checkable 控件是否可勾选
      checked 控件是否可已勾选
      scrollable 控件是否可滑动
      selected 控件是否已选择
      visibleToUser 控件是否可见
      enabled 控件是否已启用
      depth 控件的布局深度
      drawingOrder 控件在父控件的绘制顺序。
      indexInParent 控件在父控件的位置

    使用Auto.js软件,在悬浮窗的“布局范围分析”中可以选择屏幕上的控件,并查看其各项属性的值

    常用函数

    以下介绍一些编写脚本时常用的代码,更多见Auto.js文档官方文档

    • sleep(n)暂停运行n毫秒,常见的情况是,软件的运行速度“跟不上”脚本,因此需要一定时间的等待(尤其是需要点击的控件以滑动的方式进入,若不等待可能点击不到)
    • toast(message)显示气泡信息
    • log(message)在控制台中输出信息
    • toastLog(message)上面两个函数的合体
    • exit()立即停止脚本运行

    • currentPackage()是当前正在运行的应用的包名
    • waitForPackage(package[, period = 200])等待指定的应用出现,period 轮询等待间隔(毫秒)
    • currentActivity()当前正在运行的Activity的名称
    • waitForActivity(activity[, period = 200])等待指定的Activity出现
    • waitFor()等待某物出现
      例如,代码第一句一般为auto.waitFor(),检查无障碍服务是否已经启用,如果没有启用则跳转到无障碍界面,并等待无障碍服务启动
      又例如,要等待某个文本为“发送”的控件出现,代码为text("发送").waitFor();
    • exists()判断当前屏幕上是否存在某控件,如if(text("发送").exists())...

    获取控件并操作

    我们首先要①通过一定条件筛选出所需的控件②获取目标控件,③才能对其进行点击和编辑等操作(例如,要先获取到“确定”按钮的位置,才能控制脚本去点击它)

    ①筛选所需的控件:UiSelector选择器

    我们使用UiSelector选择器筛选出所需要的控件,筛选的依据就是控件的属性
    筛选时要保证条件可唯一确定某个控件,否则可能因为没有选择到所需的控件而无法实现期望的操作:

    • 通常用一个独一无二的属性来定位一个控件:这样的属性一般是idtextdesc
      例如用text("confirm").findOne().click()来点击一个按钮

    在这个例子中, text("confirm")是选择器的条件(控件的text为"confirm"),findOne()表示基于这个条件找到一个控件,从而我们可以得到确认按钮,再执行click()即可点击"发送"按钮

    • 有时单靠一个属性无法定位(例如QQ中很多控件id相同),就需要通过链式调用来组合条件
      例如className("ImageView").depth(10).clickable(true).findOne().click()

      function clickBtn(btnText,waitingDelay){//传入一个按钮,确保点击了该按钮(搭配findOne,可能传入null或按钮)
      var btn = text(btnText).clickable(true).findOne(waitingDelay);//在给定时间内持续寻找,直到找到
      if(!btn)return false;//未在给定时间内找到按钮
      while(!btn.click());//不断点击按钮直到成功,因此之前要确保按钮是可点击的
      return true;
      }

      function clickByCoord(btnText,waitingDelay){//控件本身无法点击,转而获取其坐标并模拟点击动作
      var btn = text(btnText).findOne(waitingDelay);//这里处理的是无法点击的控件
      if(!btn)return false;
      var coord= btn.bounds();
      while(!click(coord.centerX(), coord.centerY()));//click(x,y)
      return true;
      }

    UiSelector选择器:根据文本选择

    • text(str)选择出text属性等于字符串str的控件
    • textContains(str)
    • textStartsWith(prefix)
    • textEndsWith(suffix)
    • textMatches(reg)选出其text文本与正则表达式reg匹配的控件

    正则表达式:
    应用场景1:获取价格控件(¥ 1¥ 9.99等)
    如果用JavaScript正则表达式(正则表达式是RegExp对象):
    首尾用/.../括起来

    var reg = new RegExp(/^¥sd+(.d+)?$/);
    textMatches(reg).findOnce();
    或直接
    textMatches(/^¥sd+(.d+)?$/).findOnce();
    

    如果用Java正则表达式(正则表达式是字符串):
    首尾用"..."括起来
    且在字符串内,需要使用\来表达

    var reg = "^¥\s\d+(\.\d+)?$";
    textMatches(reg).findOnce();
    

    应用场景2:要要等待text为“发送”或“接收”或“确认xxx”的控件出现(三者之一均可)
    则可以这样写:

    textMatches(/(发送)|(接收)|(确认.*)/).waitFor();
    

    UiSelector选择器:其他常用选择器

    • clickable([b = true])选择那些可以点击的控件,例如className("ImageView").clickable(true)className("ImageView").clickable()表示可以点击的图片控件
    • id(str):类似text(str),还有idContains(str)idStartsWith(prefix)idMatches(reg)
    • desc(str)同上
    • className(str)同上
    • boundsInside(left, top, right, buttom)boundsContains(left, top, right, buttom)bounds(left, top, right, buttom)基于坐标来选择控件,详见坐标篇
    • UiSelector.filter(f)为选择器附加自定义的过滤条件,其中f为一个函数,传入一个控件对象,返回true或false

    ②获取目标控件

    直接在选择器后面加上findOne方法,就可以获取控件
    例如

    var w = id("action_log").findOne(6000);
    
    if(w != null)
        w.click();//如果找到控件则点击
    else
        toast("没有找到日志图标");//否则提示没有找到
    

    获取控件的方法总结

    • UiSelector.findOne()查找满足条件的控件并返回,若找不到,函数会阻塞,直至所描述的控件出现为止(因此此函数不会返回null
    • UiSelector.findOne(timeout)同上,区别在于规定了查找控件的时间:如果超过timeout毫秒还未找到,则返回null
    • UiSelector.findOnce()相较于上面的持续搜索,此函数只在屏幕上搜索一次(而非不停地一直搜索)
    • UiSelector.findOnce(i)返回第 i 个符合条件的控件

    上面的方法返回一个控件对象UiObject:只会搜索并返回第一个符合条件的控件(这里的控件次序,是搜索算法深度优先搜索DSF决定的)
    如果要返回所有符合条件的控件集合UiCollection:使用下面的方法

    • UiSelector.find()返回 UiCollection。找出所有满足条件的控件并返回一个控件集合(这个搜索只进行一次,并不保证一定会找到,因而会出现返回的控件集合为空的情况)
    • UiSelector.untilFind()返回 UiCollection。同上,区别在于如果屏幕上一直没有出现满足条件的控件,则该函数会保持阻塞(函数永远不会返回空集合)

    UiCollection实际上是一个UiObject控件的数组(继承了数组),因此可以使用数组的函数和属性,例如length属性、forEach函数,遍历时可以用传统的for遍历,也可用数组的forEach遍历,更多详见对控件的操作(控件集合UiCollection篇)

    更多获取控件的方法

    如果已经获取到某个控件,还可以根据该控件与其他控件之间的层级关系,获取其它控件(如获取控件的父控件、子控件等);也可以在该控件的子控件、孙控件…中寻找符合条件的控件
    这部分内容详见后文:③操作和点击控件-对控件的操作:基于当前的控件获取其他控件

    ③操作和点击控件

    成功获取一个控件对象,即UiObject后,就可以操作这个控件:可以通过获取到这个控件对象的属性,也可以对控件进行点击、长按等操作

    注意,并非所有clickable为false的控件都真的不能点击,这取决于控件的实现。例如对于某个自定义的类名为android.view.View的控件,clickable属性为false却能点击。

    获取控件的属性

    • UiObject.text()获取控件的文本,如果控件没有文本,返回""
    • UiObject.id()获取控件的id,如果一个控件没有id,则返回null
    • UiObject.bounds()返回控件在屏幕上的范围,其值是一个Rect对象
    • 更多详见官方文档:UiObject

    对控件的操作:点击、操作文本等

    • UiObject.click()点击该控件,并返回是否点击成功
    • UiObject.longClick()长按该控件
    • UiObject.scrollUp()UiObject.scrollLeft()UiObject.scrollForward()
    • 关于文本的操作,见后文“输入文本”部分

    对控件的操作:基于当前的控件获取其他控件

    实际上,页面控件对象的组织结构非常类似于DOM树,各控件之间都是有着层次结构的(可以获取一个节点的父节点、子节点等)

    • UiObject.children()返回 UiCollection。返回该控件的所有子控件组成的控件集合
    • UiObject.parent()返回一个控件对象 UiObject。返回该控件的父控件
    • UiObject.findOne(selector)选择器selector在该控件的子控件、孙控件…中搜索符合该选择器条件的控件,并返回找到的第一个控件
      例如var like = aWidget.findOne(id("feed_action_view_like"));
    • UiObject.find(selector)同上,在该控件的子控件、孙控件…中搜索,但返回的是符合条件的控件集合
    • UiObject.findByText(str)在当前控件的子控件,孙控件…中搜索其text或desc属性包含str字符串的控件,并返回它们的集合

    各个控件之间的具体层次结构可以在Auto.js应用悬浮窗的"布局层次分析中"查看

    对控件的操作:基于坐标的操作

    有时获取一个控件比较困难,可以直接基于坐标来进行点击或拖动等操作

    要获取要点击的位置的坐标,可以在开发者选项中开启"指针位置",也可直接结合Auto.js应用提供的“布局范围分析”中控件的bounds属性得到坐标值

    • click(x, y)模拟点击,时长约150ms,因此可能有连击速度过慢的问题,可以用press()代替
    • longClick(x, y)模拟长按
    • press(x, y, duration)模拟按住,duration为按住时长(单位ms)
      按住时长较短,被系统认为是点击;时长超过500毫秒,则被系统认为是长按
    • swipe(x1, y1, x2, y2, duration)模拟从坐标(x1, y1)滑动到(x2, y2),返回是否成功
    • gesture(duration, [x1, y1], [x2, y2], ...)模拟沿着一系列路径滑动
      gesture(1000, [0, 0], [500, 500], [500, 1000])
    • gestures([delay1, duration1, [x1, y1], [x2, y2], ...], [delay2, duration2, [x3, y3], [x4, y4], ...], ...)模拟多个同时的手势。每个手势的参数为[delay, duration, 坐标], delay为延迟多久(毫秒)才执行该手势(可省略,默认为0);duration为执行时长;

    更多基于坐标的操作,详见对控件的操作(坐标篇)

    输入文本

    配合剪切板实现输入:

    • setClip(text);
    • getClip()返回系统剪贴板内容
    • UiObject.paste()对输入框控件进行粘贴操作

    根据传入的参数来输入文本:

    • setText([i, ]text)将第i 个输入框的文本设置为text;不加参数i,则把所有输入框的文本都置为text
    • input([i, ]text)在将第i 个输入框原来的文本上追加文本text,不加参数i则会把所有输入框的文本追加内容text

    上面介绍的是全局函数,下面是一些基于控件的操作:

    • UiObject.setText(text)设置输入框控件的文本内容,只对可编辑的输入框(editable为true)有效
    • UiObject.setSelection(start, end)对输入框控件设置选中的文字内容
    • UiObject.copy()对输入框文本的选中内容进行复制,只能用于输入框控件,并且当前输入框控件有选中的文本(可以通过setSelection()函数来设置输入框选中的内容)
    • UiObject.cut()对输入框文本的选中内容进行剪切,后面同上
    • UiObject.paste()对输入框控件进行粘贴,粘贴剪贴板的内容
    更多相关内容
  • Qt控件集合下载

    千次下载 热门讨论 2017-01-09 10:04:27
    Qt 编写的小控件的集合,其中一部分为整理的开源作品,一部分为自己原创,都是一些我自己用得到的控件
  • android日历控件

    千次下载 热门讨论 2015-09-25 15:24:06
    这是一个日历控件,里面提供能的功能很完善了,可以设置字体颜色,选中的背景色,设置事务。点击左右翻页等
  • WPF日期时间控件-DateTimePicker

    热门讨论 2017-08-04 14:41:46
    1.日期时间控件,可以直接点击使用 2.是源代码文件 3.压缩包里面有使用说明文档,并有当初设计时详细的思路流程可以参考
  • Qt属性表控件-QtPropertyBrowser

    热门讨论 2016-05-11 15:37:51
    Qt属性表控件-与QtCreator的属性设置及VS的属性控件一样,具体配置方法及使用见: http://blog.csdn.net/czyt1988/article/details/42423613
  • C#自定义控件

    千次下载 热门讨论 2013-01-22 23:17:46
    C#自定义控件
  • 本资源中提供了CListCtrlEx的CPP与H文件与一个Demo示例,CListCtrlEx继承自CListCtrl,可以让您很方便的操作listCtrl控件。此类最初来源于网络,本人在其上进行加工整理,添加了一些新功能,优化了一些细节代码,...
  • 大华摄像头OCX控件及使用例子

    热门讨论 2016-07-23 09:58:25
    大华网络摄像头OCX,可通过WEB访问大华网络摄像头
  • android视频播放自定义控件

    千次下载 热门讨论 2016-01-28 23:31:29
    利用videoView自定义的一个android播放器控件,支持滑动快进快退,拖动,全屏切换
  • 移动端日期时间选择控件

    千次下载 热门讨论 2016-02-18 22:46:50
    移动端日期时间选择控件
  • C#界面美化 (最好用的免费的第三方控件控件库)

    千次下载 热门讨论 2016-06-26 19:25:53
    C#做界面美化用的。最好的免费的控件库,无使用限制,非常好用!你值得拥有!!! 超好用的免费C#第三方控件!它将为您的WinForm界面画龙点晴哦! 这是2016年的最新版的哦,支持.net2.0及.net2.0以上
  • Chrome浏览器控件嵌入Delphi开发,开发属于自己的极速个性浏览器。 亲测xe7支持
  • android 程序中动态添加删除控件或布局,设置大小,位置
  • qt 动态创建控件

    热门讨论 2014-06-06 13:30:11
    简介:根据选择的栏目 和每行要显示的控件数,创建控件
  • 组态工业控件

    热门讨论 2014-12-13 20:07:59
    使用C#实现的一些用于组态软件的工业控件实例。
  • Android 表格控件-动态实现表格效果(内容、样式可扩展),参考博客:http://blog.csdn.net/daijin888888/article/details/50159579
  • 程序(有源码)是自己写的关于Winform 的时间控件,并不是由两个DateTimePicker组成的,而是一个文本框加一个年,月,日,时,分的自定义控件组成。当然还有支持水印的WaterTextBox.cs文本控件。欢迎大家批评指正。
  • 分享C# WinForm类库控件(GduUI类库)

    千次下载 热门讨论 2014-09-02 18:33:15
    之前分享过我自己写的WinForm界面库,大家可以再看看这个帖子:http://bbs.csdn.net/topics/390833504,现在类库增加了几个控件,同样分享全部源码给大家,希望大家下载使用。
  • 只有年或年月的js控件

    热门讨论 2014-11-10 16:24:13
    包含两种js控件:1、只有年 2、只有年月。希望能帮到大家。
  • WPF带时间的日期选择控件

    热门讨论 2014-10-23 11:02:07
    WPF没有带时间的日期控件 一直很头疼 这个解决了这个问题 希望对大家有帮助
  • C#控件大全

    千次下载 热门讨论 2014-01-14 15:47:56
    1、数据显示控件 2、数据绑定和数据定位控件 3、文本编辑控件 4、信息显示控件 5、网页显示控件 6、从列表中选择控件 7、图形显示控件 8、图形存储控件 9、值的设置控件 10、数据的设置控件 11、对话框控件 12、菜单...
  • Android又一个超漂亮的日历控件

    千次下载 热门讨论 2014-07-23 14:09:49
    Android又一个超漂亮的日历控件,非常好用!
  • android 基本控件demo大集合(android studio版本),为初学者带了很大的方便
  • android自定义折线图表格控件

    热门讨论 2014-04-16 22:54:43
    android自定义折线图表格控件 采用自己在画布绘制实现的一个折线图控件 支持多条线的展示以及各种自定义的方法
  • ActiveX,ocx控件接口查看器

    热门讨论 2016-08-09 17:16:06
    ActiveX,ocx控件接口查看器,可以查看接口参数原型
  • 在 Winform中窗体(Form)就像一个容器,可以包含所有的控件(比如:panel、button、textedit等控件);如果把窗体看做是 Winform 中最大的容器,那么Panel可以看做第二,Panel控件则是专门用于界面的排版布局,...

    一、实现效果

        在 Winform中窗体(Form)就像一个容器,可以包含所有的控件(比如:panel、button、textedit等控件);如果把窗体看做是 Winform 中最大的容器,那么Panel可以看做第二,Panel控件则是专门用于界面的排版布局,相当于 Web 开发中的层(div),几乎所有控件都可以包含到 Panel 中,包括窗体。

    ①获取到指定窗体下的所有控件;

    ②获取到指定Panel下的所有控件;

    ③获取到窗体下的所有TextEdit类型控件;

    ④根据控件名称获取到该控件;

     二、实现方法

            /// <summary>
            /// 获取指定窗体或面板下的所有控件
            /// </summary>
            /// <typeparam name="T">控件类型</typeparam>
            /// <param name="containChildControlWindow">包含子控件的窗体(比如窗体是[Controls]、panel是[panel.controls])</param>
            /// <returns></returns>
            private Stack<Control> GetAllControlOfWindows(Control.ControlCollection containChildControlWindow)
            {
                Stack<Control> tmpStack = new Stack<Control>();
                foreach (Control control in containChildControlWindow)
                {
                    tmpStack.Push(control);
                }
    
                return tmpStack;
            }
    
    
    
            /// <summary>
            /// 获取指定窗体或面板下的指定类型的控件
            /// </summary>
            /// <typeparam name="T">控件类型</typeparam>
            /// <param name="containChildControlWindow">包含子控件的窗体(比如窗体是[Controls]、panel是[panel.controls])</param>
            /// <returns></returns>
            private Stack<T> GetAppointControlOfWindows<T>(Control.ControlCollection containChildControlWindow)
            {
                Stack<T> tmpStack = new Stack<T>();
                foreach (var control in containChildControlWindow)
                {
                    if (control is T)
                    {
                        tmpStack.Push((T)control);
                    }
    
                }
    
                return tmpStack;
            }
    
    
            /// <summary>
            /// 通过控件名称获取到控件
            /// </summary>
            /// <param name="controlName">控件名称</param>
            /// <param name="containChildControlWindow">包含子控件的窗体(比如窗体是[Controls]、panel是[panel.controls])</param>
            /// <returns></returns>
            private Control GetControlOfName(string controlName, Control.ControlCollection containChildControlWindow)
            {
                if (string.IsNullOrEmpty(controlName)) return null;
    
                foreach (Control item in containChildControlWindow)
                {
                    if (item.Name.Equals(controlName))
                    {
                        return item;
                    }
                }
    
                return null;
            }

     三、调用方法

            //获取到窗体下包含的所有控件
            private void btn_getAllControlOfWindow_Click(object sender, EventArgs e)
            {
                Stack<Control> controls = GetAllControlOfWindows(this.Controls);
                ShowControlInfo(controls);
            }
    
    
    
            //获取到Panel下包含的所有控件
            private void btn_GetAllControlOfPanel_Click(object sender, EventArgs e)
            {
                Stack<Control> controls = GetAllControlOfWindows(this.panel1.Controls);
                ShowControlInfo(controls);
            }
    
    
    
            //获取窗体下的所有TextEdit类型控件
            private void btn_GetAllTextEditControlOfWindow_Click(object sender, EventArgs e)
            {
                Stack<TextEdit> controls = GetAppointControlOfWindows<TextEdit>(this.Controls);
                ShowControlInfo(controls);
            }
    
    
            //根据输入的控件名称获取控件
            private void btn_GetControlOfName_Click(object sender, EventArgs e)
            {
                //通过控件名称获取控件
                string inputControlName = textEdit1.Text.Trim();
                Control control = GetControlOfName(inputControlName, this.Controls);
                if (control!=null)
                {
                    string strInfo = $"名称为【simpleButton1】的控件信息如为:{control.Name} {control.Text} {control.Size} {control.Enabled = false}";
                    ShowInfo(strInfo);
                }
             
            }
    
    
    
    
    
            /// <summary>
            /// 显示控件信息
            /// </summary>
            /// <typeparam name="T">控件类型</typeparam>
            /// <param name="controlList">控件列表</param>
            private void ShowControlInfo<T>(Stack<T> controlList)
            {
                if (controlList == null || controlList.Count <= 0)
                    return;
    
                string strTmp = string.Empty;
    
                foreach (var item in controlList)
                {
                    if (item is Control)
                    {
                        Control control = item as Control;
    
                        strTmp += $"控件名称【{control.Name}】 控件描述【{control.Text}】" + "\r\n";
                    }
    
                }
                strTmp += $"\r\n 共有:{controlList.Count} 个控件";
                ShowInfo(strTmp);
            }
    
            /// <summary>
            /// 显示信息
            /// </summary>
            /// <param name="info">信息</param>
            private void ShowInfo(string info)
            {
                memoEdit_ShowInfo.Text = info;
            }

    展开全文
  • Jsp日期控件

    千次下载 热门讨论 2012-11-04 19:54:29
    Jsp日期控件 自己改的jsp页面弹出的日期选择 里面有例子!点击 下拉各种弹出!很全的
  • Visual Basic.NET 2008控件使用范例详解pdf, 电子书和源码,范盛荣著,清华出版社。可以学习下。电子书是影印版,不太清楚,但是可以看。 第1章 可调节类控件 1.1 Datetimepicker控件 1.2 MonthCalendar控件 1.3 ...
  • 目录 (1)文本框 (2)标签 (3)标题 (4)复选框、切换按钮和选项按钮 ...通过控件用户进行数据输入或操作数据的对象,控件是窗体中的子对象,它在窗体中起着显示数据、执行操作以及修饰窗体的作用。 控件也具...

    目录

        (1)文本框

        (2)标签

        (3)标题

        (4)复选框、切换按钮和选项按钮

        (5)选项组控件

        (6)组合框与列表框

        (7)命令按钮

        (8)选项卡与附件控件

        (9)图像控件

      (10)子窗体/子报表


        在Access中控件是放置在窗体对象上的对象,用户可操作控件来执行某种操作。通过控件用户进行数据输入或操作数据的对象,控件是窗体中的子对象,它在窗体中起着显示数据、执行操作以及修饰窗体的作用。
       控件也具有各种属性。设置控件属性需要在控件属性表中进行。控件属性表与窗体的属性表相同,只是属性的项目和数量有所不同,另外不同的控件具有不同的属性。

        控件组中的按钮/控件及功能

    名称

    功能

      选择

      用于选择墨迹笔划、形状和文本的区域。具体用来选择控件、节和窗体。单击该按钮释放以前选定的控件或区域

      文本框

      用输入、输出和显示数据源的教据,显示计算结果和接受用户输人数据

      标签

      用于显示说明文本.如窗体的标题或其他控件的附加标签

      命令按钮

      用于完成各种操作,如查找记录、打印记录或应用窗体筛选

      选项卡

      用于创建一个多页的带选项卡的窗体,可以在选项卡上添加其他对象

      超链接

      在窗体中插入超链接控件

      Web浏览器

      在窗体中插入浏览器控件

      导航

      在窗体中插入导航条

      选项组

      与复选框、选项按钮或切换按钮搭配使用.可以显示-组可选值

      分页符

      使窗体或报表上在分页符所在的位置开始新页

      组合框

      结合列表框和文本框的特性,既可以在文本框输入值也可以从列表框中选择值

      插入图表

      在窗体中插人图表对象

      直线

      创建直线,用以突出显示数据或者分隔显示不同的控件

      切换按钮

      在单击时可以在开/关两种状态之间切换.使用它在一组值中选择其中1个

      列表框

      显示可滚动的数值列表.可以从列表中选择值输入到新纪录中

      矩形框

      创建矩形框.将一组相关的控件组织在一起

      复选框

      绑定到是/否字段;可以从一组值中选出多个

      未绑定对象框

      在窗体中插入来绑定对象.例如Excel电子表格、Word文档

      附件

      在窗体中插入附件控件

      选项按钮

      绑定到是/否字段,其行为和切换按钮相似__

      子窗体/子报表

      用于在主窗体和主报表添加子窗体或子报表。以显示来自多个一对多表中的数据

      绑定对象框

      用于在窗体或报表上显示OLE对敏

      图像

      用于在窗体中显示静态的图形

      控件向导

      用于打开和关闭控件向导.控件向导帮助用户设计复杂的控件

      ActiveX控件

      打开一个ActiveX控件列表,插入Windows系统提供的更多控件

        (1)文本框

        文本框既可以用于显示指定的数据,也可以用来输入和编辑字段数据.文本框分为三种类型:’绑定(也称结合)型、未绑定(也称非结合)型和计算型。绑定型文本框是链接到表和查询中的字段,从表或查询的字段中获取所显示的内容.在设计视图中,绑定型控件显示表或查询中具体字段名称。未绑定型文本框并不链接到表或查询,在设计视图中以“未绑定”字样显示,一般用来显示提示信息或接受用户输入数据等。计算型文本框,用于放置计算表达式以显示表达式的结果。

        (2)标签

        当需要在窗体上显示一些说明性文字时,通常使用标签控件(称为独立标签)。标签不显示字段的数值,它没有数据源.在创建除标签外的其他控件时,都将同时创建一个标签控件(称为附加标签2到该控件上,用以说明该控件的作用,而且标签上显示与之相关联的字段标题的文字.

        (3)标题

        标题控件实质上就是标签.它用于创建窗体标题,在设计视图中创建窗体时,如果以某个名称对窗体进行过保存,再添加标题时,则自动以该窗体的名称作为标题,另外还可以自动设置标题字号的大小,所以使用标题控件可以快速地完成窗体标题创建.而且标题自动添加到窗体页眉中。

        (4)复选框、切换按钮和选项按钮

        复选框、切换按钮和选项按钮作为单独的控件用来显示表或查询中的“是/否”值,当选中复选框或选项按钮时,设置为“是”,如果未选中则设置为“否”,对于切换按钮,如果单击“切换按钮”;其值为“是”,否则为“否”。

        (5)选项组控件

        选项组由一个框架和一组复选框、选项按钮或切换按钮组成。使用选项组可以在一组确定的值中选择值。

        (6)组合框与列表框

        组合框和列表框在功能上是十分相似的。在很多场合下,在窗体上输入的数据往往是取自某一个表或查询中的数据,这种情况应该使用组合框或列表框控件.这样做既保证输入数据的正确性,又提高数据的输入效率.组合框不仅可以从列表中选择数据,而且还可以输入数据,而列表框只能在列表中选择数据.例如在罗斯文数据库的销售情况对话框中,销售报表、销售时间和筛选销售项目都是列表框,年份、季度和月份则是组合框。

        (7)命令按钮

        在窗体中通常使用命令按钮来执行某项功能的操作,例如“确定”和“退出”等。

        (8)选项卡与附件控件

        当窗体中的内容较多无法在窗体中一页显示,或者为了在窗体上分类显示不同的信息时,可以使用选项卡进行分页,这时只需单击选项卡上的标签,就可以在不同的页面进行切换。
        附件控件是为了保存Office文档。

        (9)图像控件

        在窗体上设置图像控件是为了美化窗体。

      (10)子窗体/子报表

      子窗体/子报表控件用于在主窗体和主报表上,显示来自一对多表中的数据。

    展开全文
  • Android 底部控件随软键盘弹出而上移demo

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,503,735
精华内容 601,494
关键字:

控件