动态用户控件点击事件用户控件:privatestringlastName;publicstringLastName{get{returnlastName;}设置{姓氏=值;lastNameTextBox.Text=值;}}形式:使用(SqlConnectionmyDatabaseConnection=newSqlConnection(myConnectionString.ConnectionString)){myDatabaseConnection.Open();使用(SqlCommandSqlCommand=newSqlCommand("SelectLasatNamefromEmployee",myDatabaseConnection)){inti=0;SqlDataReaderDR1=SqlCommand。执行阅读器();while(DR1.Read()){i++;UserControl2usercontrol=newUserControl2();usercontrol.Tag=i;usercontrol.LastName=(string)DR1["LastName"];usercontrol.Click+=newEventHandler(usercontrol_Click);flowLayoutPanel1.Controls.Add(用户控件);}}}该表单从数据库中加载记录,并在动态创建的每个用户控件文本框中显示每个姓氏。单击动态用户控件时如何在表单文本框中显示地址等附加信息?尝试:privatevoidusercontrol_Click(objectsender,EventArgse){using(SqlConnectionmyDatabaseConnection=newSqlConnection(myConnectionString.ConnectionString)){myDatabaseConnection.Open();使用(SqlCommandmySqlCommand=newSqlCommand("从员工中选择地址@whereLastName=LastName",myDatabaseConnection)){UserControl2usercontrol=newUserControl2();mySqlCommand.Parameters.AddWithValue("@LastName",usercontrol.LastName;SqlDataReadersqlreader=mySqlCommand.ExecuteReader();if(sqlreader.Read()){textBox1.Text=(string)sqlreader["Address"];}}}首先。在您的第一个代码片段中,您执行“从中选择ID”,但期望在阅读器中找到字段“姓氏”-不起作用。其次。如果您知道您需要Employee表中的更多信息,我建议您将它存储在放置姓氏的同一个UserControl中。执行“Select*from...”,将另一个字段和属性添加到UserControl2并在读取循环中分配它:usercontrol.Address=(string)DR1["Address“];第三。在您的第二个代码片段中,使用UserControl2usercontrol=(UserControl2)sender;而不是UserControl2usercontrol=newUserControl2();因为新创建的UserControl不会分配任何姓氏。然后:privatevoidusercontrol_Click(objectsender,EventArgse){UserControl2usercontrol=(UserControl2)sender;textBox1.Text=usercontrol.Address;在用户控件UserControl2中(在构造函数或InitializeComponent方法中),您应该将点击事件转发给潜在的侦听器。大概是这样的:以上就是C#学习教程:动态用户控件点击事件分享的全部内容。如果对大家有用,需要详细了解C#学习教程,希望大家多多关注——publicUserControl2(){...this.lastNameTextBox.Click+=(s,a)=>OnClick(A);...}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
