[VB.NET] Problème feuille Fille & feuille MDI ?

omarfla Messages postés 14 Date d'inscription mercredi 5 mai 2004 Statut Membre Dernière intervention 3 août 2005 - 29 janv. 2005 à 19:35
cs_Creat Messages postés 76 Date d'inscription dimanche 25 juillet 2004 Statut Membre Dernière intervention 20 mars 2006 - 30 janv. 2005 à 23:58
Bonjour,
A travers un bouton qui existe dans la feuille fille je veux changer la valeur Enable du bouton Nouveau de menu toolBar à True de la feuille mère (MDI). Voici ce que j'ai fait :

Code :

'Je suis dans form fille
'La _frmMDI est une instance de la feuille mère frmMDI, je l'ai déclarée public (Public _frmMDI as frmMDI) ainsi lors du chargement de la feuille frmMDI je crée l'instance _frmMDI = New frmMDI

_frmMDI.tbNouveau.Enabled = True

Le résultat : La valeur Enabled reste à False ne change pas pourquoi ?

Merci


OmarIX

5 réponses

cs_labout Messages postés 1356 Date d'inscription samedi 8 décembre 2001 Statut Membre Dernière intervention 23 octobre 2006 8
30 janv. 2005 à 10:49
Supposons que la forme principale s'appelle FrmMdi
la toolbar s'appelle ToolBar1
et que l'on se trouve dans une feuille fille

Le bouton à traiter est le troisième

Dans la fenêtre fille
dim frm as new FrmMdi
frm.toolbar1.buttons(2).enabled=false
frm.dispose()

labout
0
omarfla Messages postés 14 Date d'inscription mercredi 5 mai 2004 Statut Membre Dernière intervention 3 août 2005
30 janv. 2005 à 15:48
Bonjour,
J'ai essayé avec ce code, mais ça marche pas. En fait, j'ai trouvé une solution sur le forum; c'est la traduction de VB6 vers VB .NET

Voici le code :

'A placer avant InitializeComponent()

If m_vb6FormDefInstance Is Nothing Then


If m_InitializingDefInstance Then


m_vb6FormDefInstance = Me


Else


Try


'For the start-up form, the first instance created is the default instance.


If System.Reflection.Assembly.GetExecutingAssembly.EntryPoint.DeclaringType Is Me.GetType Then


m_vb6FormDefInstance = Me


End If


Catch


End Try


End If


End If


#Region "Upgrade Support form VB6"


' Attention à Form1 remplacer par le nom de votre feuille


Private Shared m_vb6FormDefInstance As Form2


Private Shared m_InitializingDefInstance As Boolean


Public Shared Property DefInstance() As Form2


Get


If m_vb6FormDefInstance Is Nothing OrElse m_vb6FormDefInstance.IsDisposed Then


m_InitializingDefInstance = True


m_vb6FormDefInstance = New Form2


m_InitializingDefInstance = False


End If


DefInstance = m_vb6FormDefInstance


End Get


Set(ByVal Value As Form2)


m_vb6FormDefInstance = Value


End Set


End Property


#End Region

N. B. : Form2 est la feuille fille



Y a-t-il une autre solution sans de traduire de VB6 vers VB .NET ???

OmarIX
0
cs_labout Messages postés 1356 Date d'inscription samedi 8 décembre 2001 Statut Membre Dernière intervention 23 octobre 2006 8
30 janv. 2005 à 17:50
la solution que j'ai indiqué est la bonne, car le code traduit est très lourd et lent.
j'ai testé la solution avant de répondre et cela marche en VB.NET 2003.

labout
0
omarfla Messages postés 14 Date d'inscription mercredi 5 mai 2004 Statut Membre Dernière intervention 3 août 2005
30 janv. 2005 à 23:12
Pour moi j'ai trop essayé et j'ai pas vu de résultat. C'est illogique !!! SVP pouvez-vous m'envoyer ton code pour s'assurer ? Merci.


OmarIX
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Creat Messages postés 76 Date d'inscription dimanche 25 juillet 2004 Statut Membre Dernière intervention 20 mars 2006
30 janv. 2005 à 23:58
Ça fait un bout de temps que je cherche comment faire. Je viens d'essayer le code de Labout et ça ne fonctionne pas. Je serais curieux de voir le code complet de Labout

Merci
0