将需要滚动的子控件放置在容器内,并确保子控件的总大小超过了容器的可见区域,这样才会触发自动滚动。...当AutoSize属性为True时,控件大小会自动调整以适应其内容,当为False时,控件大小不会自动调整。...如果设置为True,则窗体将显示默认的最小化、最大化和关闭按钮。如果设置为False,则这些按钮将不显示。...以下是使用MainMenuStrip的基本步骤:1.在设计窗体时,将MainMenuStrip控件拖放到窗体上。2.在MainMenuStrip中添加菜单和子菜单。...使用DoubleBuffered可以在控件绘制过程中使用一个缓冲区,当绘制完成时,将缓冲区中的内容一次性绘制到屏幕上,以达到平滑绘制的效果。
通过类的属性进行数据传值 此次案例我们改变本节案例(1)数据传值的方法,通过建立类的属性将数据传递过去。...u 实验步骤(1): 为传值目标窗口Form3定义相关属性信息如下: 小实验: Form3目标传值窗体属性定义以及Load加载事件源代码: public partial class Form3 : Form...所以在程序设计中处理好、设计好菜单,对于一个软件开发是否成功有着比较重要的意义。...菜单的本质就是提供了将命令分组的一致方法,使得用户易于访问,通过支持使用访问键启用键盘快捷方式,达到快速操纵软件系统的目的。 菜单从分类来说,可以分为菜单栏、主菜单和子菜单三个概念。...图1-27 拖放一个MenuStrip控件到窗体上 (2)可以直接点击MenuStrip控件填写主菜单及子菜单名称,但是需要注意菜单命名时候避免直接录入汉字的问题。
dwAdd 指定了在修改风格时要加入的窗口风格。 nFlags 要传递给SetWindowPos的标志,如果不应调用SetWinowPos,则为0。缺省值为0。...在第一个控件后面把WS_GROUP风格设置为FALSE的控件都属于这一组。下一个具有WS_GROUP风格的控件将开始下一组(这意味着一个组在下一组的开始处结束)。...WS_MAXIMIZE 创建一个最大化的窗口。 WS_MAXIMIZEBOX 创建一个具有最大化按钮的窗口。 WS_MINIMIZE 创建一个初始状态为最小化的窗口。...当用户单击问号时,鼠标光标的形状变为带指针的问号。如果用户随后单击一个子窗口,子窗口将接收到一个WM_HELP消息。...WS_EX_MDICHILD 创建一个MDI子窗口。
主要部分: 公共语言运行库:运行库实际上在组件的运行时和开发时操作中都起到很大的作用,尽管名称中没有体现这个意思。...在开发时,运行库的作用稍有变化;由于做了大量的自动处理工作(如内存管理),运行库使开发人员的操作非常简单,尤其是与今天的 COM 相比。...你可以使用这一功能来发送一个命令到SQL Server,并且要求当其后运行的同样命令产生不同的结果时,SQL Server生成一个通知。这一功能是通过从属对象检测到基础数据的改变来实现的。...其实外部实体也可以是另外一个信息系统,在本系统中不涉及到其他信息系统。 外部实体用一个矩形表示,并在其左上角外边另加一个直角来表示外部实体,外部实体的名称写在矩形框内。 ?...3、可靠性,是系统地与外界干扰的能力及受到外界干扰时的恢复能力。 4、经济性,在满足系统的需求的前提下,尽可能减少系统机构。 ?️?
原理是利用ToolStripControlHost可以承载自定义控件的这一能力,让下拉式控件ToolStripDropDown将任何自定义控件像右键菜单那样弹出来(别忘了右键菜单ContextMenuStrip...当时了解到这方案的时候真挺开心,正是我想要的效果,感觉这下好了,不用瞎费劲自己造了。...添加和移除在显示/隐藏时负责 _mouseMsgFilter = new AppMouseMessageHandler(this); this.DoubleBuffered...时,后者会改Owner为MDIParent this.Owner = c.FindForm(); } /// ...在此也提醒一下调用者,在使用模式对话框时,永远考虑有返回Cancel这种情况,不限于本例,而是所有对话框 原Show()/Show(IWin32Window)和ShowDialog()/ShowDialog
值得注意的是,如果存在 layui-tab-item 的内容区域,在切换时自动定位到对应内容。如果不存在内容区域,则不会定位到对应内容。...依赖加载模块:form 表单 常用属性 required --->浏览器固定的必填字段 lay-verify --->需要验证的类型(required表示必填项) class="layui-input...默认显示的文本信息 autocomplete--->表单元素是否自动填充(当浏览器缓存中存在相同name属性值时,会进行填充操作) 使用演示: <!...当你宽高都要定义时,你可以area: [‘500px’, ‘300px’] ---- 弹出层图标设置 信息框默认不显示图标。当你想显示图标时,默认皮肤可以传入0-6如果是加载层,可以传入0-2。..., {icon: 5}); layer.load(1); //风格1的加载 还可以选风格0 ---- 弹出层按钮的设置 信息框模式时,btn默认是一个确认按钮,其它层类型则默认不显示,加载层和
Selenium 的概述: Selenium 是一个用于自动化浏览器操作的工具集。它通过模拟用户在浏览器中的行为,如点击、输入、表单提交等,来实现自动化测试和网页数据抓取等功能。...: Selenium 提供了相应的方法来处理表单字段和下拉列表: 输入文本到表单字段: element.send_keys("text") 选择下拉列表选项: from selenium.webdriver.support.ui...:使用显示等待或隐式等待来等待页面加载完成。...: driver.maximize_window() 这个方法用于将浏览器窗口最大化,以便更好地查看网页内容。...获取到的属性值将存储在变量 css_property 中。
browser.maximize_window() - 浏览器窗口最大化 窗口最大化 节点操作: 节点操作 作用 node.send_keys(’’) 在文本框填写内容 node.click() 点击...模拟填写表单、点击等 填写表单: # 首先定位到文本框 text_box = browser.find_element_by_xpath('xxx') # 清空文本框 text_box.clear()...隐式等待 和 显式等待 在使用Selenium访问网页的过程中,有时候需要等待网页的加载,所以有时候就需要延时等待一定的实践,确保网页里你需要的内容都加载出来。...7.1 隐式等待 当使用隐式等待执行测试的时候,如果 Selenium 没有在 DOM 中找到节点,将继续等待,超出设定时间后,则抛出找不到节点的异常。...如果在指定时间内加载出来了这个节点,就返回查找的节点;如果到了指定时间没有加载出该节点,则抛出超时异常。
本篇主要讲述页面设计与效果,下篇将讲述编码并提供源码下载。...左侧面板 左侧面板其实是相当重要的一块,在平常系统设计中,往往把功能菜单放在左侧。这里类似。不仅支持分组折叠,还支持无限极子菜单,美观而灵活。 ? 当点击子节点,会显示在Tab页中。 ?...整个工作台布局也是采用折叠面板,不过当展开某个面板时,会刷新数据。默认加载,并不需要加载所有数据。 就拿待处理事务来说: ? 通过工具栏按钮,可以方便对事务进行操作(别忘了判断权限)。...通过数据行中的操作列按钮,可以方便查看表单内容,当表单关闭时,刷新工作台。 总之,只会显示一个操作面板。 ? 最后 整个页面是自适应的,会随着浏览窗口大小自适应,如: ?...点子页面弹出表单可以最大化,如: ? 当你点击表单里面的提交按钮(假设存在),提交完后,可以关闭表单,父页面也可以触发操作,如关闭弹出的表单时: ? 先写到这里吧,下篇再细谈。到时奉上DEMO。
去年我写过一篇文章,叫《我是如何设计后台框架里那些锦上添花的动画效果》,那会其实已经隐约感觉到,似乎做的好的、被人熟知的几个后台框架,在功能和界面上已经开始趋于同质化了,很难做出差异。...页面最大化 最大化的功能是借鉴了其它框架的思路,在此基础上,我增加了双击标签栏将当前标签页最大化的特性,虽然是个小小的改变,但很符合使用习惯。...大致思路就是将多级路由自动处理成二级,并且保留原先多级路由的数据。相当于维护两份数据,原始数据用于侧边栏展示,而处理过的二级路由当做真实路由进行注册。从而彻底解决多级路由缓存这个坑人的问题。...但由于在 Vue2 版本里并不是强制开启,导致很多开发者如果没有仔细阅读文档的话,压根不知道这一特性。 而在 Vue3 版本里,我将这个配置项做为了标准特性,并且做了针对性的优化,覆盖更多的使用场景。...于是我开发了一个标准模块,只需修改其中一个参数,就可以快速在路由跳转、弹窗和抽屉这三种模式中快速切换,并且代码无需调整,其核心就是把表单和承载的容器进行解耦。
HttpPostman自动路由组件 github地址:https://github.com/shang7053/HttpPostman 码云地址: 说明 自动路由组件,根据访问域名自动路由到真实服务上...主要特性如下: 路由模块使用node.js,基于事件驱动,最大支持每秒24000次请求,相比tomcat、nginx拥有更高的性能 使用zookeeper作为服务注册中心,启动将注册信息加载到内存,并通过...watcher机制进行同步,最大化减少路由模块响应耗时 支持权重策略,解决硬件差异下公平路由 支持GET、POST、PUT、DELETE 支持表单提交和rest 支持返回json、xml 架构图 ?..."appenders":["console","log_date"], "level": "debug" } } } } sdk使用说明 进入到sdks...->java->ar_client,执行 mvn clean install 然后在项目添加到pom.xml com.scc <artifactId
Chrome版本 v2.37 v64-66 v2.36 v63-65 v2.34 v61-63 chrome浏览器 这里需要注意的是如果想更换对应的谷歌浏览器,要高版本的请务必直接升级处理,低版本的卸载时要彻底...此时的窗口地址栏下方会出现【Chrome 正在受到自动测试软件的控制】字样。 ?...根据选项卡id切换标签页 execute_script('window.open("www.segmentfault.com")') 执行js脚本(打开新标签) maximize_window() 最大化...get_screenshot_as_file() 截图(图片保存路径+名称+后缀) set_page_load_timeout(30) 设置加载时间 启动前添加参数 chromeOptions =...proxy-server=http://101.236.23.202:8866") //代理 chromeOptions.add_argument("headless") //不启动浏览器模式 不加载图片启动
3月,Bleeping Computer 曾报道过由安全研究员 mr.d0x创建的这种新网络钓鱼工具包,该工具包可以让攻击者为 Steam、Microsoft、Google 和任何其他服务创建虚假登录表单...这些目标账户通常价值不菲,大多在 100000 美元到 300000 美元之间。...【显示为游戏锦标赛平台的钓鱼页面】 钓鱼登录页面甚至支持27个国家的语言,能自动从受害者的浏览器偏好中检测语言设置并加载相应的语言。...一旦受害者输入他们的Steam账户凭证,一个新产生的表单会提示输入 2FA 代码,如果身份验证成功,用户将被重定向到 C2 指定的 URL,通常会是一个合法地址,以最大限度地减少受害者意识到这是网络钓鱼的可能性...该窗口甚至允许用户拖动、将其最小化、最大化或者关闭,因此很难将其识别为这是一个在浏览器中生成的虚假浏览器窗口。
s1.使用传统的导航菜单 s2.将实用程序放在右上角 5.每次互动后提供反馈 当用户与您的界面交互时,他们应该体验到实时反馈。有什么成功的吗?它不成功吗?发生了什么变化?...s1.在加载动画时使用冷色来减少唤醒 蓝色减少唤醒(并增加放松)。使用蓝色加载元素,用户会感知到更快的加载时间(Gorn 等人,2004 年)。有关更多详细信息,请参阅我关于颜色的文章。...s1.保持表单标签始终可见 避免当用户在元素内部单击时消失的内联标签。 s2.将占位符文本放置在表单元素之外 s3.将复制按钮添加到可移动输入 8.最小化锯齿形眼图 减少来回眼球运动的数量。...将所有补充数据保持在近距离内。 s1.合并一致数据以帮助用户比较项目 s2.将表单标签与元素直接相邻对齐 9.沟通哪些项目是可点击或交互的 用户应该确定哪些元素是交互的(以及如何与它们交互)。...s1.解决自动生成的消息中的不利结果 s2.使用接受各种输入格式的表单元素 s3.显示满足搜索者需求的结果 s4.使用处理拼写错误、同义词和变体的搜索字段 5.最大限度地兼容所有介质 您的界面应该适用于所有环境
自动转向(Auto-Redirecting),也叫自动重定向。自动跳转,指当访问用户登陆到某网站时,自动将用户转向其它网页地址的一种技术。转向的网页地址可以是网站内的其它网页,也可以是其它网站。...对自动转向技术(Auto-Redirecting)的合理应用包括:将用户转向到指定浏览器的网页版本;当网站的域名变更或删除后将人们转向到新域名下,等等。...如下所示: <meta http-equiv=”refresh” content=”10; 其中的“10”是告诉浏览器在页面加载5秒钟后自动跳转到url这个页面。 ...表单(FORM)自动转向法 搜索引擎的“爬行”程序是不会填写表单的,所以它们也不会注意到提交表单,因而可以利用表单来实现自动转向(重定向)而不让搜索引擎察觉。 ...在什么都没有的情况下,浏览器仍旧会为该URL安排请求至服务器。 用javascript脚本可让页面开始加载时即提交表单。
1.根类 Ext.form.Basic 提供了,表单组件,字段管理,数据验证,表单提交,数据加载的功能 2.表单的容器 Ext.form.Panel 容器自动关联 Ext.form.Basic 的实例对象更方便的进行字段的配置...Ext.form.field.Date 带有日期选择器下拉框并会自动进行 日期验证的日期输入表单 Ext.form.field.Number 数值型的文本表单,对非数组值行的 按键进行自动过滤,并且限定一系列...Ext.form.field.ComboBox 选择框 Ext.form.field.Checkbox 选择框方式的 Ext.form.field.Radio 单选框 Ext.form.field.Hidden 特殊的-隐藏字段 提交表单时传递到后台... 重要的方法 Ext.form.field.ComboBox 控件支持自动完成、远程加载、和许多其他特性。...(1, { success: function(user) { // 当用户加载成功,加载数据到表单 userForm.loadRecord(user
window_handles 获取当前会话里所有窗口的句柄 方法 简单说明 close() 关闭当前浏览器窗口 back() 后退一步 forward() 前进一步 get(url) 访问URL并加载网页到当前的浏览器会话...maximize_window() 最大化浏览器窗口 quit() 退出当前的驱动实例并关闭所有相关窗口 refresh() 刷新当前页面 implicitly_wait() 等待时间,单位为秒 set_page_load_timeout...() 设置一个页面完全加载完成的超时等待时间,单位为秒 set_script_timeout() 设置脚本执行的超时时间 (三) WebElement功能及方法 通过WebElement可以实现与网站页面元素的交互...如果对元素使用,将会提交该元素所属的表单 value_of_css_property(property_name) 获取CSS属性的值, property_name是CSS属性的名称 (四) 操作表单...、文本框、复选框、单选按钮 通过WebElement实现与各种HTML控件的自动化交互,例如在一个文本框输入文本、单击按钮、选择单选框或者复选框、获取元素的文本及属性值等。
考虑到有很大一部分后端开发者也在使用 Fantastic-admin ,我非常能理解学习一门新技术时最初期时的那种迷茫,因为可能连入门文档都未必能马上看懂,开发环境都得捣鼓好久,所以我也准备了几期快速上手的视频教程...表单展示模式快速切换 这个小特性也是我比较满意的创新之一 在实际开发中,我经常会使用路由跳转的方式去处理表单详情页,但是如果表单内容量较少,产品经理会希望把跳转改成弹窗,或者抽屉的形式。...加强版 在 里无需导入相关 API ,该依赖会自动导入(默认支持 vue 、vuex 和 vue-router): <script setup...全局组件自动按需加载 全局组件顾名思义就是在使用的时候,无需导入,无需注册,本身就是一种很舒服的开发体验。...但在 Vue2 版本里,全局组件会在框架运行时就自动导入并注册,导致首屏加载的文件会随着全局组件的增多而越来越大。
当然了,你在下次评论时会自动填充信息表单,效率是不是很快? 简介:在页面加载时从本地存储中恢复数据,并将已保存的数据显示在对应的输入框中。...监听输入框输入事件:通过addEventListener方法,将saveData函数绑定到name、email和weburl输入框的input事件上,当输入框中输入信息时自动保存数据。...页面加载时恢复数据:使用window.onload事件,在页面加载完成后检查本地存储中是否存在之前保存的数据,如果存在则将数据填充到相应的输入框中。...("input", saveData); weburlInput.addEventListener("input", saveData); // 页面加载时从本地存储中恢复数据 window.onload...当输入内容时,saveData() 函数会被触发,并将输入框的值保存到本地存储中。同时,通过在代码中添加console.log()语句,将保存成功的消息输出到控制台。
前言 在熟悉了元素定位之后,我们接下来就要学习对定位到的元素进行操作这项内容了。我简要做了个总结,如下图: ?...void submit():提交当前form(表单)内容到远程服务器,注意是特定于表单元素而言的。...会触发打开链接页面的事件,有两种情形: 在当前窗口加载新页面内容 新建一个窗口加载新页面内容,这种情况在a标签有target="_blank"时触发 当发生第2种情况时,同上文的frame类似,由于driver...下面通过一个例子来进行演示,我们要实现的场景是: 打开【UI自动化测试页面】,点击超链接,在新窗口打开【UI自动化-新页面】。 在【UI自动化-新页面】的输入框输入"新页面"。...自动化执行过程中,如果页面或元素没有加载完成,就进行下一步操作,无疑是会抛出异常的,因此selenium提供了多种元素等待的方法。
领取专属 10元无门槛券
手把手带您无忧上云