在VBA编辑器可以直接双击UserForm1那个界面进入到代码编辑,这样进入会自动插入代码: Private Sub UserForm_Click() End Sub 从名称可以看出,这个就是窗体的1 个单击事件,添加一条代码: Private Sub UserForm_Click() MsgBox "点击窗体" End Sub 在普通模块编写一个过程: Sub TestUserFrom( ) UserForm1.Show End Sub UserForm1是插入窗体时,默认的名称,可以通过属性窗口修改: ?
CommandButton3_Click() Worksheets("Sheet3").Activate End Sub 在普通模块编辑代码: Sub TestUserFrom() UserForm1
由于不确定工作表的数量,所以不能通过拖拽的方式添加指定数量的控件,这时候就需要用到UserForm的Initialize事件,在UserForm初始化的时候来添加控件,首先仍然拖拽一个命令按钮在窗体的最上面 ,修改Caption为激活,然后进入窗体代码编辑: Private Sub UserForm_Initialize() '定义MSForms.OptionButton变量 Dim 关键字Me,在这里就是指添加的窗体UserForm1,这个关键字还可以在类模块里使用,所代表的也就是那个类。
UserForm是一种交互界面,方便与用户交互。如果设计了一个这样的交互界面:需要用户输入名称,然后根据名称来运行程序,那么应该如何实现?
但是在UserForm_Initialize事件里添加控件,如果使用窗体的全局变量ob的话,ob只能指向最后一个控件,因为它仅仅是一个变量,不会同时指向多个控件。 在窗体中编辑代码: Option Explicit '声明COB数组,记录COB对象 Private cobs() As COB Private Sub UserForm_Initialize()
—稍后我们会新增一个UserForm类,用来存储用户信息。--> <form-bean name="<em>userForm</em>" type="test.<em>UserForm</em>"/> </form-beans> <! --处理regist.cools的请求,使用的FormBean是userForm,既test.UserForm类,当处理过程发生错误时将返回index.jsp--> <action path="/regist { private String name="lpw";//用户名 private String ps="1111";//密码 public UserForm(){} public void userform = (UserForm) form; //此处可以调用其他类来执行数据库写入或其他逻辑判断 // 如果UserForm传来的参数name的值为默认的lpw,将forward到 后缀为cool的请求全部到action-mappings中寻找 // 对应的action处理,最终目录是wuwu.jsp*/ if( "lpw".equals(userform.getName
文章背景:在使用VBA的用户窗体(userform)时,有时会用到二级下拉菜单。比如选择院系(一级下拉菜单)后,班级(二级下拉菜单)的内容自动更新;选择省份后,该省份下面所属的市相应更新。 As Integer, nrow As Integer Sheets("Sheet1").Select 'Clear old data, if exists UserForm1 For i = 1 To nrow j = 1 If Range("A1:A" & nrow).Cells(i, 1) = UserForm1 ) j = j + 1 Loop UserForm1 .provinceselect.AddItem Range("C1:C" & ncategories).Cells(i, 1) Next i UserForm1
假设我们的form定义如下: case class User(_id: String, name: String, emails: List[String]) val userForm = Form[User ("emails").value返回None,正确的访问方式是: userForm("emails")("[0]").value userForm("emails")("[1]").value userForm ("emails")("[2]").value 或者 userForm("emails[0]").value userForm("emails[1]").value userForm("emails[2 ("emails").indexes){ @userForm("emails")("[" + i + "]").value } 3. 利用Form.value获取绑定的数据对象 @for((email, i) <- userForm.value.get.emails.zipWithIndex){ @i - @email <br
: JSON.parse(JSON.stringify(userForm)), rules: { ... } }; }, methods: { resetForm() $refs.userForm.resetFields(); this.userForm = JSON.parse(JSON.stringify(userForm)); } } } 方案2:(局限) 提交时,删除 id(当编辑比新增属性多很多时,该方案会很冗余) // 需要获取当前是「新增」还是「编辑」操作 delete this.userForm.id ... $refs.userForm.resetFields(); this.userForm = Object.assign({}, this. $options.data().userForm); } // 或更霸道,还原所有 this 数据 const data = this.
= Form.form(Registration.class); return ok(views.html.register.render(userForm)); } (Registration.class).bindFromRequest(); User user = new User(userForm.get().email, userForm.get ("email")) @helper.inputPassword(userForm("password")) <input type="submit"> } </body (Registration.class).bindFromRequest(); User user = new User(userForm.get().email, userForm.get (userForm)); } else { session().clear(); session("email",userForm.get
文章背景:用户窗体是Excel中的UserForm对象。在使用UserForm时,曾经目前遇到过两个问题。 新建UserForm窗体时,默认是没有最大化和最小化按钮的,只有一个关闭按钮。 在某个按钮的任务执行完毕后,希望用户窗体可以自动最小化,省去手动点击最小化按钮的麻烦。 UserForm中添加最大化、最小化按钮。 运行UserForm窗体,得到如下结果: 可以看到,此时UserForm1中有了最大化和最小化按钮。 最小化用户窗体的代码实现 以一个简单的命令按钮为例。 在userForm添加一个命令按钮(CommandButton1),Caption取名为最小化。接下来同样需要在代码窗口内输入两大块代码。
MSForms.ComboBox, CBIndex As Long) Set myCB = CB myIndex = CBIndex End Sub Private Sub myCB_Change() UserForm1 .Controls("textbox" & myIndex).Value = "" End Sub Private Sub myCB_Click() UserForm1.Controls("textbox " & myIndex).Value = "" With UserForm1.Controls("combobox" & myIndex) If .ListIndex > -1 Then UserForm1.Controls("textbox" & myIndex).Value = _ Sheets("myData").Cells(.ListIndex + 1, "A"). 双击打开用户窗体代码模块,输入代码: Private CB(1 To 10) As New CComboboxes Private Sub UserForm_Initialize() Dim i As
鉴权 那么我们简单模拟下鉴权,在 src/main/java/com.example.jimmytemplate/ 下面新建 model 数据: // UserForm.java package com.example.jimmytemplate ; import lombok.Data; @Data public class UserForm { private String username; private String ; UserForm user = new UserForm(); user.setUsername("Jimmy"); user.setPassword @RequestMapping(value="/add", method= RequestMethod.POST) public String add(@ModelAttribute UserForm
public static Result postForm() { Form<User> userForm = Form.form(User.class); User user = userForm.bindFromRequest 修改form.scala.html为 @(userForm: Form[util.User]) <! ("email")) @helper.inputPassword(userForm("password")) @helper.inputText(userForm("comment 修改原有的动作form() public static Result form() { Form<User> userForm = Form.form(User.class); return ok(views.html.form.render(userForm)); } 这里,表单对象作为参数传递给模板。
回到本文的 demo 中,假设在我们业务逻辑中需要传递一个 UserForm,接收 age,name,param 三个参数。 public class UserForm { @Min(value = 0, message = "validate.userform.age") @Max(value = 120, message = "validate.userform.age") private int age; @NotNull(message = "validate.userform.name.notEmpty ") private String name; @CustomParam(message = "validate.userform.param.custom") private userForm) { return Response.ok(new Greeting(counter.incrementAndGet(), String.format(template, userForm.getName
@PostMapping("/post") @ApiOperation(value = "获取用户接口Post",notes = "获取用户接口notes Post",response = UserForm.class ) public UserForm post(@RequestBody @ApiParam(name="用户对象",value="传入json格式",required=true) UserForm userForm){ return userForm; } } form @ApiModel(description = "用户from") public class UserForm = true) private String userName; @Override public String toString() { return "UserForm
除了上面的内置约束,我们可以针对每个表单项编写更精确的自定义约束,例如: val userForm = Form( tuple( "email" -> text.verifying(_ == 除了上文的 formWithErrors 对象, 我们也可以将业务数据填充到 Form 实例中,然后传递给模板页面进行渲染: val userForm = Form(tuple("email" -> email, "name" -> nonEmptyText)) Ok(views.html.editUser(userForm.fill(("user@playscala.cn", "user")))) 在editUser.scala.html 模板文件中,我们可以很方便地将 userForm 中的数据渲染成 HTML 表单: @(userForm: Form[(String, String)]) ="Post"> <input name="email" value="@<em>userForm</em>("email").value"> <input name="name" value="@<em>userForm</em>
boolean addUser(AddUserForm userForm) { User user = new User(); user.setNickname(userForm.getNickname ()); user.setBirthday(userForm.getBirthday()); user.setUsername(userForm.getUsername( )); user.setPassword(userForm.getPassword()); return save(user); } 重构一下,感觉清爽了一些。 userForm) { User user = new User(); BeanUtils.copyProperties(this,user); return save(user save(userForm.buildEntity()); } 上面的代码有没有种似曾相识的感觉,很多情况都是将接受到的参数,转变成对应的实体类然后保存或者更新。
{ kotlinOptions.jvmTarget = "1.8" } compileTestKotlin { kotlinOptions.jvmTarget = "1.8" } 创建UserForm 30个字符 @NotNull 不为空 @Min(18)age不能小于18 创建 WebController import name.quanke.kotlin.chaper11_5_5.entity.UserForm addViewController("/results").setViewName("results") } @GetMapping("/") fun index(userForm : UserForm): String { return "index" } @PostMapping("/") fun checkPersonInfo(@Valid userForm: UserForm, errors: Errors): String { val result: String = when { //Test for
The code should actually read: from django import forms class UserForm(forms.Form): email_address def __init__(self, *args, **kwargs): self.user = kwargs.pop('user', None) super(UserForm view, you can use it like so: def someview(request): if request.method == 'POST': form = UserForm form.is_valid(): # Do something with the data pass else: form = UserForm