我目前面臨的問題是,當我嘗試將焦點放在一些控件(textBox)上時,什麼也沒有發生,也許我只是忽略了某些東西(某處我發現焦點是「低級別」方法和即選擇()應改爲使用,但是,它不工作,以及)C#WinForms無法設置焦點
從形式登錄,我啓動EncryptPSW形式
private void openToolStripMenuItem_Click(object sender, EventArgs e)
{
EncryptPSW ePSW = new EncryptPSW();
ePSW.setOsLog(false, this);
ePSW.ShowDialog();
}
按鈕(位於EncryptPSW形式)點擊的新實例事件我叫填充方法
public void fill()
{
if (textBoxPSW.Text.Length == 8)//psw has to be 8 chars long
{
if (save)//determinating whether save or fetch of data should be done
{ login.launchSave(textBoxPSW.Text,this); }
else { login.launchOpen(textBoxPSW.Text,this); }
}
else { MessageBox.Show("The password must contain 8 characters");}
}
啓動保存或從登錄開放的方法,(我的問題是剛剛開放,因爲在救我不需要做任何事情對焦)
public void launchOpen(string psw,EncryptPSW ePSW)
{
ePSW.Close();
Encryptor.DecryptFile("loggin.bin", psw, this); //decrypting data and setting textBoxes Text property into the fetched ones
setFocus();
}
所有的工作完成後,的setFocus()應被調用以設置焦點和其他屬性。
public void setFocus()
{
textBoxDatabase.Focus();
textBoxDatabase.SelectionStart = textBoxDatabase.TextLength - 1;
textBoxDatabase.SelectionLength = 0;
}
我嘗試了許多不同的方法,如:
從內EncryptPSW_FormClosed 調用整個開放過程中的EncryptPSW關閉後(從內EncryptPSW_FormClosed) 調用的setFocus()和更多的人,但是我不記住這一切。
在Form_Closed的情況下,奇怪的是,當我試圖從那裏顯示一個消息框而不是設置焦點(只是爲了查看問題的可能位置)時,它顯示在EncryptPSW表單關閉之前。
我這個唯一的猜測是,EncryptPSW的情況下以某種方式阻止登錄形式,它的控制
我希望我說明我的問題不夠好,它使得至少一個位意識;]
在此先感謝,
問候,
Releis
這不是一個概率。你的textBoxDatabase所在的位置? –
是您在調用Focus()時可見的文本框? –
textBox位於登錄表單上,是的,它是可見的 – Releis