Je suis chargé de modifier une ancienne application .Net 1.1 qui ne peut pas être mise à niveau pour le moment. L'application est horriblement conçue, avec des appels partout, des fonctions répétées, du code inutilisé qui n'est même pas commenté, et de multiples itérations du même usercontrol sans notation quant à laquelle est réellement utilisé. Les contrôles usuels qui sont utilisés sont mélangés avec des contrôles qui ne sont pas du tout des contrôles utilisateur, mais tout aussi complexes, lorsqu'ils sont implémentés dans une centrale Form
.Comment trouver un contrôle sans connaître le contrôle parent, restreint par instance (.Net 1.1)
Le central appelé MainForm
a un TabControl
qui possède lui-même WorkForm
dans chaque page. Ceux-ci sont générés dynamiquement à partir de l'entrée de l'utilisateur. Le WorkForm
est un contrôle utilisateur et contient le méli-mélo de contrôles utilisateur et de contrôles/panneaux contenus/non confinés mentionnés précédemment. La filiation peut être dynamique entre un formulaire et un contrôle basé entièrement sur les données chargées, ce qui ajoute à la complexité du problème. Une instance d'un contrôle utilisateur qui fait partie du contrôle utilisateur WorkForm
sur son quatrième onglet a une grille de données, et ce que je dois faire est de modifier le code qui ajoute une nouvelle ligne dans cette grille de données pour vérifier un contrôle à l'extérieur du contrôle de l'utilisateur, mais dans le même WorkForm
, et obtenir ses SelectedValue
. J'ai essentiellement besoin de "Où est Waldo" le contrôle dont j'ai besoin, mais avec suffisamment de "Carmen Sandiego" pour m'adapter au fait que la hiérarchie de contrôle n'est pas garantie. Aussi, la loi de Demeter sur celle-ci ressemble plus à "Loi de Déméter? Je ne la connais même pas". donc vraiment kludgy appels aux variables statiques qui ne devraient pas être à peu près comment l'application fonctionne.
Quelque chose comme:
Dim row as DataRow = aDataTable.NewRow()
row[12] = Me.Parent.Cousin.TwiceRemoved.OnFathersSide.NotThatOne _
.TheOtherOne.SelectedValue
Quelle serait la meilleure façon d'aller à la chasse à ce contrôle, étant donné que la relation n'est pas garanti? P.S. Je n'ai pas écrit l'application. Je suis juste coincé avec des instructions pour ajouter un changement à ce cauchemar.
C'est la meilleure façon d'y arriver dans une situation aussi difficile, même si j'ai finalement réussi à convaincre ceux qui sont plus haut dans l'échelle d'adopter une approche différente. – CDove