Bonjour
j'ai le code suivant :
mais Form.ActiveForm donne tjrs la valeur Nothing malgré une form activeCode:
1
2 Dim CurrentForm As New Form CurrentForm = Form.ActiveForm
Version imprimable
Bonjour
j'ai le code suivant :
mais Form.ActiveForm donne tjrs la valeur Nothing malgré une form activeCode:
1
2 Dim CurrentForm As New Form CurrentForm = Form.ActiveForm
Trouvant votre problème étrange j'ai effectué un petit test :
Ce code se trouvait dans un bouton. Si j’exécute mon exemple en cliquant sur le bouton sans passer par le debug, il m'indiquera que j'ai bien une form active. Si je l'exécute en début et donc que je passe sur l'activeForm en step to step, la fonction me renverra null. Ce qui est logique car la fenêtre active (celle-de debug) ne fait pas partie de votre projet et cache la fenêtre dans laquelle vous effectuer le codeCode:
1
2
3
4
5
6
7 Form currentForm = Form.ActiveForm ; if (currentForm != null) MessageBox.Show("actif"); else MessageBox.Show("non actif");
Je vois qu'il existe une méthode Activate qui active la form et donc l'amène en avant plan (pour autant qu'elle soit visible).
Merci
le problème était de faire le traitement dans le catch
et pour régler ca j'ai fait le traitemet dans la méthode Activated de la FormCode:
1
2
3
4
5
6
7
8
9
10 Try ...... Catch ex As Exception Dim CurrentForm As New Form CurrentForm = Form.ActiveForm ...... End Try
Code:
1
2
3
4
5 Private Sub MaForm_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Activated Dim CurrentForm As String = Form.ActiveForm.Name.ToString End Sub