Inputbox personnalisable avec le code source vb

Soyez le premier à donner votre avis sur cette source.

Vue 12 063 fois - Téléchargée 828 fois

Description

Voici une boite de dialogue (qui fonctionne à peu près comme le InputBox classique, sauf le retour de la saisie) que l'on peut personnaliser. D'après la source en C# :
www.codeproject.com/KB/edit/InputBox.aspx
Convertie via :
www.developerfusion.com/tools/convert/csharp-to-vb

Dans le InputBox classique, le seul moyen (à ma connaissance) de savoir si on a cliqué sur Annuler est de voir si la chaîne de retour est vide, tandis qu'ici, on distingue les 2 cas.

J'ai fait un exemple de personnalisation de la boite de dialogue par le choix supplémentaire d'un type quelconque à effectuer (type 1 ou type 2 par exemple).

Source / Exemple :


Cf. Zip.

Conclusion :


Le 1er problème, c'est que, comme avec la source d'origine en C#, les contrôles sont créés dynamiquement, on ne les voit pas dans le désigneur de Visual Studio, ce qui n'est pas pratique (on est obligé de créer des contrôles à part dans une feuille puis de copier/coller le code source, et il faut ajuster la position des contrôles).

Le second problème, c'est que du coup, pour faire une personnalisation du code, c'est plus simple de dupliquer le code source. L'idéal serait de faire un héritage en POO pour ne modifier que ce qui est nécessaire (mais ce n'est pas sûr que cela en vaille le coup pour un code aussi simple) : si quelqu'un a une meilleure solution que la mienne, je suis preneur (j'ai du aller vite sur cette source ; je pense qu'il devrait être possible de partir d'une feuille normale, avec quand même un appel depuis un shared sub, ou sinon tant pis pour le shared sub, un new InputBoxPerso fera l'affaire à l'usage ; repartir de zéro serait le plus simple ?).

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Londonic Messages postés 298 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 26 septembre 2009
14 sept. 2009 à 16:17
'Rem J'aimerais bien retrouver le code ou j'ai pompé ce truc, mais ça marche.

<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class toto
Inherits System.Windows.Forms.UserControl


Friend WithEvents WebBrowser1 As System.Windows.Forms.WebBrowser
'Requise par le Concepteur Windows Form
Private components As System.ComponentModel.IContainer
'Form remplace la méthode Dispose pour nettoyer la liste des composants.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub

<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.WebBrowser1 = New System.Windows.Forms.WebBrowser
Me.SuspendLayout()
'
'WebBrowser1
'
Me.WebBrowser1.Dock = System.Windows.Forms.DockStyle.Fill
Me.WebBrowser1.Location = New System.Drawing.Point(0, 0)
Me.WebBrowser1.MinimumSize = New System.Drawing.Size(20, 20)
Me.WebBrowser1.Name = "WebBrowser1"
Me.WebBrowser1.Size = New System.Drawing.Size(284, 264)
Me.WebBrowser1.TabIndex = 0
'
'toto
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.Controls.Add(Me.WebBrowser1)
Me.Name = "toto"
Me.Size = New System.Drawing.Size(284, 264)
Me.ResumeLayout(False)

End Sub


End Class



Public Class toto


Sub New()
InitializeComponent()
WebBrowser1.Navigate("http://bt.my.yahoo.com/")
End Sub

End Class
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
14 sept. 2009 à 11:48
Des jolis MessageBox en C# ici :
www.codeproject.com/KB/vista/Vista_TaskDialog_Wrapper.aspx
Londonic Messages postés 298 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 26 septembre 2009
4 mai 2009 à 17:58
Peut-être le quelqu'un en profitera pour mettre aussi la "MessageBox" dans la boite à outils
A+
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
4 mai 2009 à 09:59
Merci. C'est vrai que ça fait un moment que j'avais aussi besoin de ce bout de code réutilisable, qui évite de faire un formulaire dédié, et qui s'utilise aussi simplement que le InputBox d'origine. Reste quand même les 2 petits problèmes évoqués mais peut être que quelqu'un apportera une solution.
Londonic Messages postés 298 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 26 septembre 2009
4 mai 2009 à 09:29
Formidable! Pourquoi se casser la tête a dessiner des formulaires quand on a de tels outils ? Il faudra inventer une forme d'analyse des charges à base de choix dichotomiques courants (input1) et de cas numérisés (input2). On y développerait rapidement les primitives et ça laisserait plus de temps pour le visuel qu'on a trop tendance à bacler depuis que ca se développe avec des glisser/coller.
- En tout cas merci, c'est le genre d'objet qu'on remet toujours à plus tard, comme la configuration. Je regrettais mon impasse et je peux tourner la page.
Merci encore.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.