[英]c# Groupbox Property Change
我在Windows窗體上有一個Groupbox,其enabled屬性設置為false。 我想在驗證用戶名和密碼后在代碼中啟用Groupbox。 當我調用Groupbox.Enabled = true方法時,Groupbox的狀態不會更改。 我正在從另一個Windows窗體進行調用,並且在進行調用以啟用Groupbox之前已經實例化了該窗體。 我想念什么嗎?
namespace ShadowKey
{
public partial class SetKey : Form
{
ConfigOptions cOptions = new ConfigOptions();
public SetKey()
{
InitializeComponent();
}
private bool CompareStrings(string string1, string string2)
{
return string.Compare(string1, string2, true, System.Globalization.CultureInfo.InvariantCulture) == 0 ? true : false;
}
private void btnOk_Click(object sender, EventArgs e)
{
try
{
Thread.Sleep(2000);
string connection = @"Data Source=|DataDirectory|\EncrypterDB.sdf";
SqlCeConnection dataCon = new SqlCeConnection(connection);
dataCon.Open();
string userText = tbUser.Text;
string pwrdText = tbPwrd.Text;
SqlCeCommand cmd = new SqlCeCommand("Select usr_name, usr_password FROM user_accounts WHERE usr_name='" + tbUser.Text + "' and usr_password='" + tbPwrd.Text + "'", dataCon);
cmd.Parameters.Add(new SqlCeParameter("username", userText));
cmd.Parameters.Add(new SqlCeParameter("password", pwrdText));
SqlCeDataReader rdr = cmd.ExecuteReader();
try
{
rdr.Read();
if (rdr["usr_name"].ToString().Trim() == userText && rdr["usr_password"].ToString().Trim() == pwrdText)
{
cOptions.gbEncryptionKey.Enabled = true;
}
}
catch
{
MessageBox.Show("Invalid Username or Password!", "Login Error!");
}
rdr.Close();
dataCon.Close();
}
catch
{
MessageBox.Show("You've thrown an exception!", "Error!");
}
}
}
}
沒有太多代碼需要經過,但是我敢猜測。 我懷疑您的LinkLabel正在創建ConfigOptions的新實例。 然后,當Enabled屬性設置為true時,將在實例化SetKey時創建的實例上對其進行設置。 這意味着您不是在更新所顯示的內容,而是在更新隱藏的內容。 將斷點放在ConfigOptions構造函數中,查看是否多次調用該斷點。
我看不到何時顯示ConfigOptions,但是可以說它顯示為要打開的第一個窗體,現在您正在查看第二個窗體。 訪問ConfigOptions上的屬性的方法是:
(Application.OpenForms[0] as ConfigOptions).ThePropertyToSet = PropertyValueHere;
基本上,您想基於打開窗體的索引(順序)通過Application.OpenForms訪問窗體。 執行以下操作無濟於事,因為您實際上並未在打開的ConfigOption窗體上設置屬性。
ConfigOptions cOptions = new ConfigOptions();
cOptions.gbEncryptionKey.Enabled = true;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.