我是C#的总菜鸟,我一直坚持改变其他班级的状态标签文字。
当此类连接到db时,我想将标签文本更改为"已连接":
public class DBConnect
{
public void Connect()
{
MySqlConnection conn;
string myConnectionString;
myConnectionString = "server = 127.0.0.1; uid=cardb;" +
"pwd=cardb; database=test;";
try
{
Form form = new Form();
conn = new MySqlConnection();
conn.ConnectionString = myConnectionString;
conn.Open();
form.setStatus();
}
catch (MySqlException ex)
{
MessageBox.Show(ex.Message);
}
}
}
这是我在Form类中创建的setStatus方法:
public partial class Form : System.Windows.Forms.Form
{
public Form()
{
InitializeComponent();
}
public void setStatus()
{
StatusTextLabel.Text = "Connected";
}
标签文字虽然没有改变..:/
答案 0 :(得分:1)
我看不到创建DBConnect
对象或调用其Connect()
方法的代码,也没有看到使Form对象可见的代码,例如form.Show()
。
除此之外,您可能不应该使用Connect方法创建表单;而是从表单中调用Connect()
,例如在Form_Load()中,让它返回一个或更好的状态:conn
对象(连接后你现在扔掉它),并使Form_Load根据它设置Label.Text。
示例代码:
private void Form1_Load(object sender, EventArgs e)
{
var conn = new DBConnect().Connect();
if (conn != null && conn.State == ConnectionState.Open)
{
StatusTextLabel.Text = "Connected";
}
}
public class DBConnect
{
public SqlConnection Connect()
{
SqlConnection conn = ...
// ...
return conn;
}
}
答案 1 :(得分:0)
传递表单而不是创建新表单。
<html lang="fa-IR" dir="rtl">
<body>
<input type="number" step="0.2">
</body>
</html>
然后试试这个
private Form form {get;set;}
public DBConnect(Form form)
{
this.form = form;
}
答案 2 :(得分:0)
您可能需要一个已打开表单的实例,并从那里调用该方法,而不是创建新表单的实例。你可以尝试:
(System.Windows.Forms.Application.OpenForms["Form"] as Form).setStatus();