我的問題在於,我正在開發一個小應用程序,以在SCCM 2012服務器上執行一些操作。使用Windows窗體傳遞對象
目前它只是創建,刪除和移動文件夾。
我想要做的是有一個窗體,你登錄。這已經完成。從這裏你應該選擇你想要做什麼樣的操作(例如移動或刪除)。然後會彈出一個新的表單,並在這裏做你的魔力。
這一切都很完美,但是,我認爲我沒有做到「正確」的方式。現在,我將連接對象傳遞給構造函數以創建所有創建的窗體,並且這些窗體是相互創建的。是否有意義?
我想要做的是擁有某種控制類,從創建登錄表單的位置決定是否應該隱藏或顯示,並將連接對象傳遞到我想要的位置,當它已被返回/保存。
我的問題是,當我創建表單時,所有的控制流都轉到該表單。如果我可以在控制類中保留流,並且從這裏控制是否根據成功登錄來隱藏/顯示錶單,我寧願選擇。
我希望你能理解我的問題,並可能有解決方案嗎?
這裏是Form1的代碼片段:
public Form1()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void button1_Click(object sender, EventArgs e)
{
userName = textBox1.Text;
password = textBox2.Text;
getConnection = Connect(COMPUTER, userName, password);
if (connection != null)
{
Form2 form2 = new Form2(connection);
form2.Show();
this.Hide();
}
}
public WqlConnectionManager Connect(string serverName, string userName, string userPassword)
{
try
{
SmsNamedValuesDictionary namedValues = new SmsNamedValuesDictionary();
WqlConnectionManager connection = new WqlConnectionManager(namedValues);
if (System.Net.Dns.GetHostName().ToUpper() == serverName.ToUpper())
{
// Connect to local computer.
connection.Connect(serverName);
}
else
{
// Connect to remote computer.
connection.Connect(serverName, userName, userPassword);
}
return connection;
}
catch (SmsException e)
{
MessageBox.Show("Failed to connect. Error: " + e.Message);
return null;
}
catch (UnauthorizedAccessException e)
{
MessageBox.Show("Failed to authenticate. Error: " + e.Message);
return null;
}
}
我想連接方法應該是在你的窗口2並調用它(這取決於什麼ü想做的事)後,1)在表單加載事件或2)用戶交互(用戶想要做什麼)。也應該將連接放置在不同的類(訪問層)中。 – terrybozzio
你可以通過它的聲音將它作爲一個單身人士 – Sayse