我正在研究Visual Basic项目,但遇到了一个问题。
我创建了81个标签(手工,没有数组),我需要给他们代码。
我想要识别标签的属性,例如Name和Text;但我不想更改每个代码
我可以执行以下操作:this.Name
来获取当前标签的名称吗?甚至我的老师也不知道如何解决这个问题。
我尝试了Me.name
但是返回了表单的名称......我找不到任何文档。
请尽快帮助,Sagi。
答案 0 :(得分:3)
如果要在单击标签时获取标签的名称,可以使用Click事件的sender
参数。例如,这里有一个处理两个标签的Click事件的方法。
Sub Label_Click(sender As Object, e As EventArgs) Handles Label1.Click, Label2.Click
Dim thisLabel As Label = CType(sender, Label)
Dim myName As String = thisLabel.Name
End Sub
答案 1 :(得分:1)
每当您遇到控件问题时,都应首先在MSDN上查找。如果你查找标签,你可以看到Name确实是一个属性。看这里: Link
This.name将返回表单控件。您必须找到标签的个人控件并以此方式获取名称。喜欢," Label1.Name"。
答案 2 :(得分:1)
您可以遍历表单上的控件以获取其属性。像这样:
Handles
修改强>
Blackwood的上述答案就是你所需要的。您只需要为每个标签使用AddHandler
子句或使用Private Sub wireUpLabelEvents()
'Get each label on the form and wire up the event handler
For Each lbl In Me.Controls.OfType(Of Label)()
AddHandler lbl.Click, AddressOf Label_Click
Next
End Sub
Private Sub Label_Click(sender As Object, e As EventArgs)
Dim thisLabel As Label = CType(sender, Label)
Dim myName As String = thisLabel.Name
End Sub
和循环,使用与上面相似的代码:
@Configuration
@EnableWebSecurity
@PropertySource("classpath:security.properties")
public class SecurityConfig extends WebSecurityConfigurerAdapter {
private static final Logger log = Logger.getLogger(SecurityConfig.class);
@Autowired
private Environment env;
@Autowired
private MyUserDetailService myUserDetailService;
@Autowired
private CustomLdapAuthenticationProvider customLdapAuthenticationProvider;
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.authenticationProvider(customLdapAuthenticationProvider).userDetailsService(myUserDetailService);
log.debug(auth);
}
@Bean
@Override
public AuthenticationManager authenticationManager() {
List<AuthenticationProvider> authenticationProviders = new ArrayList<>();
authenticationProviders.add(customLdapAuthenticationProvider);
AuthenticationManager am = new ProviderManager(authenticationProviders);
return am;
}
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers("/static/**");
log.debug(web);
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/static/**").permitAll()
.antMatchers("/secure/**").hasRole("USER")
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.defaultSuccessUrl("/secure/hello")
.failureUrl("/loginfailed")
.permitAll()
.and()
.sessionManagement()
.maximumSessions(1)
.expiredUrl("/login")
.and()
.and().logout()
.permitAll()
.logoutRequestMatcher(new AntPathRequestMatcher("/logout"))
.deleteCookies("JESSIONID")
.invalidateHttpSession(true)
.and()
.csrf()
.and()
.portMapper().http(8080).mapsTo(8443)
.http(80).mapsTo(443)
.and();
log.debug(http);
}
}