Changements cassants dans Windows Forms pour .NET Core 3.0 et 3.1
La prise en charge de Windows Forms a été ajoutée à .NET Core dans la version 3.0. Cet article répertorie les changements cassants pour Windows Forms par la version .NET dans laquelle ils ont été introduits. Si vous mettez à niveau une application Windows Forms à partir de .NET Framework ou d’une version précédente de .NET Core (3.0 ou version ultérieure), cet article vous concerne.
Les modifications cassantes suivantes sont documentées sur cette page :
.NET Core 3.1
Contrôles supprimés
À compter de .NET Core 3.1, certains contrôles Windows Forms ne sont plus disponibles.
Description de la modification
À compter de .NET Core 3.1, plusieurs contrôles Windows Forms ne sont plus disponibles. Des contrôles de remplacement qui présentent une meilleure conception et une meilleure prise en charge ont été introduits dans .NET Framework 2.0. Les contrôles déconseillés ont été supprimés auparavant des boîtes à outils du concepteur, mais il était toujours possible de les utiliser.
Les types suivants ne sont plus disponibles :
- ContextMenu
- DataGrid
- DataGrid.HitTestType
- DataGrid.HitTestInfo
- DataGridBoolColumn
- DataGridCell
- DataGridColumnStyle
- DataGridColumnStyle.DataGridColumnHeaderAccessibleObject
- DataGridColumnStyle.CompModSwitches
- DataGridLineStyle
- DataGridParentRowsLabelStyle
- DataGridPreferredColumnWidthTypeConverter
- DataGridTableStyle
- DataGridTextBox
- DataGridTextBoxColumn
- GridColumnStylesCollection
- GridTablesFactory
- GridTableStylesCollection
- IDataGridEditingService
- IMenuEditorService
- MainMenu
- Menu
- Menu.MenuItemCollection
- MenuItem
- ToolBar
- ToolBarAppearance
- ToolBarButton
- ToolBar.ToolBarButtonCollection
- ToolBarButtonClickEventArgs
- ToolBarButtonStyle
- ToolBarTextAlign
Version introduite
3.1
Action recommandée
Chaque contrôle supprimé correspond à un contrôle de remplacement recommandé. Reportez-vous au tableau suivant :
Suppression du contrôle (API) | Remplacement recommandé | API associées supprimées |
---|---|---|
ContextMenu | ContextMenuStrip | |
DataGrid | DataGridView | DataGridCell, DataGridRow, DataGridTableCollection, DataGridColumnCollection, DataGridTableStyle, DataGridColumnStyle, DataGridLineStyle, DataGridParentRowsLabel, DataGridParentRowsLabelStyle, DataGridBoolColumn, DataGridTextBox, GridColumnStylesCollection, GridTableStylesCollection, HitTestType |
MainMenu | MenuStrip | |
Menu | ToolStripDropDown, ToolStripDropDownMenu | MenuItemCollection |
MenuItem | ToolStripMenuItem | |
ToolBar | ToolStrip | ToolBarAppearance |
ToolBarButton | ToolStripButton | ToolBarButtonClickEventArgs, ToolBarButtonClickEventHandler, ToolBarButtonStyle, ToolBarTextAlign |
Category
Windows Forms
API affectées
- System.Windows.Forms.ContextMenu
- System.Windows.Forms.GridColumnStylesCollection
- System.Windows.Forms.GridTablesFactory
- System.Windows.Forms.GridTableStylesCollection
- System.Windows.Forms.IDataGridEditingService
- System.Windows.Forms.MainMenu
- System.Windows.Forms.Menu
- System.Windows.Forms.Menu.MenuItemCollection
- System.Windows.Forms.MenuItem
- System.Windows.Forms.ToolBar
- System.Windows.Forms.ToolBar.ToolBarButtonCollection
- System.Windows.Forms.ToolBarAppearance
- System.Windows.Forms.ToolBarButton
- System.Windows.Forms.ToolBarButtonClickEventArgs
- System.Windows.Forms.ToolBarButtonStyle
- System.Windows.Forms.ToolBarTextAlign
- System.Windows.Forms.DataGrid
- System.Windows.Forms.DataGrid.HitTestType
- System.Windows.Forms.DataGridBoolColumn
- System.Windows.Forms.DataGridCell
- System.Windows.Forms.DataGridColumnStyle
- System.Windows.Forms.DataGridLineStyle
- System.Windows.Forms.DataGridParentRowsLabelStyle
- System.Windows.Forms.DataGridPreferredColumnWidthTypeConverter
- System.Windows.Forms.DataGridTableStyle
- System.Windows.Forms.DataGridTextBox
- System.Windows.Forms.DataGridTextBoxColumn
- System.Windows.Forms.Design.IMenuEditorService
Événement CellFormatting non déclenché si l’info-bulle est affichée
DataGridView affiche désormais le texte et les info-bulles d’erreur quand l’utilisateur place le curseur sur une cellule ou et lorsqu’elle est sélectionnée via le clavier. Si une info-bulle est affichée, l’événement DataGridView.CellFormatting n’est pas déclenché.
Description de la modification
Avant .NET Core 3.1, une DataGridView dont la propriété ShowCellToolTips était définie sur true
affichait une info-bulle pour le texte et les erreurs d’une cellule quand l’utilisateur plaçait le curseur dessus. Les info-bulles ne s’affichaient pas quand une cellule était sélectionnée via le clavier (par exemple à l’aide de la touche de tabulation, de touches de raccourci ou de la navigation avec les flèches). Si l’utilisateur a modifié une cellule, puis, alors que DataGridView était encore en mode d’édition, placé le curseur sur une cellule dont la propriété ToolTipText n’était pas définie, un événement CellFormatting a été déclenché pour mettre en forme le texte de la cellule pour l’affichage dans la cellule.
Pour répondre aux normes d’accessibilité, à compter de .NET Core 3.1, une DataGridView dont la propriété ShowCellToolTips est définie sur true
affiche les info-bulles pour le texte et les erreurs d’une cellule non seulement quand l’utilisateur place le curseur sur une cellule, mais également lorsqu’elle est sélectionnée via le clavier. En raison de cette modification, l’événement CellFormatting n’est pas déclenché quand l’utilisateur place le curseur sur les cellules dont la propriété ToolTipText n’est pas définie alors que DataGridView est en mode d’édition. L’événement n’est pas déclenché, car l’utilisateur place le curseur sur une cellule dont le contenu est affiché sous la forme d’une info-bulle au lieu d’être affiché dans la cellule.
Version introduite
3.1
Action recommandée
Refactorisez tout code qui dépend de l’événement CellFormatting alors que DataGridView est en mode édition.
Category
Windows Forms
API affectées
None
.NET Core 3.0
Police de contrôle par défaut remplacée par Segoe UI 9 pt
Description de la modification
Dans .NET Framework, la propriété Control.DefaultFont était définie sur Microsoft Sans Serif 8.25 pt
. L’image suivante montre une fenêtre qui utilise la police par défaut.
À compter de .NET Core 3.0, la police par défaut est définie sur Segoe UI 9 pt
(police identique à SystemFonts.MessageBoxFont). En raison de ce changement, les formulaires et les contrôles sont agrandis d’environ 27 % pour tenir compte de la plus grande taille de la nouvelle police par défaut. Par exemple :
Cette modification a été apportée pour s’aligner sur les instructions relatives à l’expérience utilisateur (UX) Windows.
Version introduite
3.0
Action recommandée
En raison de la modification de la taille des formulaires et des contrôles, assurez-vous que votre application s’affiche correctement.
Si vous souhaitez conserver la police d’origine d’un formulaire unique, définissez sa police par défaut sur Microsoft Sans Serif 8.25 pt
. Par exemple :
public MyForm()
{
InitializeComponent();
Font = new Font(new FontFamily("Microsoft Sans Serif"), 8.25f);
}
Vous pouvez également modifier la police par défaut d’une application complète de l’une des manières suivantes :
En définissant la propriété MSBuild
ApplicationDefaultFont
sur « Microsoft Sans Serif, 8.25pt ». Il s’agit de la technique préférée, car elle permet à Visual Studio d’utiliser les nouveaux paramètres dans le concepteur.<PropertyGroup> <ApplicationDefaultFont>Microsoft Sans Serif, 8.25pt</ApplicationDefaultFont> </PropertyGroup>
En appelant Application.SetDefaultFont(Font).
class Program { [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.SetHighDpiMode(HighDpiMode.SystemAware); Application.SetDefaultFont(new Font(new FontFamily("Microsoft Sans Serif"), 8.25f)); Application.Run(new Form1()); } }
Catégorie
- Windows Forms
API affectées
Aucun.
Modernisation de FolderBrowserDialog
Le contrôle FolderBrowserDialog a été modifié dans les applications Windows Forms pour .NET Core.
Description de la modification
Dans .NET Framework, Windows Forms utilise la boîte de dialogue suivante pour le contrôle FolderBrowserDialog :
Dans .NET Core 3.0, Windows Forms utilise un contrôle COM plus récent introduit dans Windows Vista :
Version introduite
3.0
Action recommandée
La boîte de dialogue est mise à niveau automatiquement.
Si vous souhaitez conserver la boîte de dialogue d’origine, définissez la propriété FolderBrowserDialog.AutoUpgradeEnabled sur false
avant d’afficher la boîte de dialogue, comme illustré par le fragment de code suivant :
var dialog = new FolderBrowserDialog();
dialog.AutoUpgradeEnabled = false;
dialog.ShowDialog();
Category
Windows Forms
API affectées
SerializableAttribute supprimé dans certains types Windows Forms
Le fichier SerializableAttribute a été supprimé dans certaines classes Windows Forms qui ne dispose d’aucun scénario de sérialisation binaire connu.
Description de la modification
Les types suivants sont décorés avec l’attribut SerializableAttribute dans .NET Framework, mais l’attribut a été supprimé dans .NET Core :
System.InvariantComparer
- System.ComponentModel.Design.ExceptionCollection
- System.ComponentModel.Design.Serialization.CodeDomSerializerException
System.ComponentModel.Design.Serialization.CodeDomComponentSerializationService.CodeDomSerializationStore
- System.Drawing.Design.ToolboxItem
System.Resources.ResXNullRef
System.Resources.ResXDataNode
System.Resources.ResXFileRef
- System.Windows.Forms.Cursor
System.Windows.Forms.NativeMethods.MSOCRINFOSTRUCT
System.Windows.Forms.NativeMethods.MSG
Historiquement, ce mécanisme de sérialisation a rencontré de graves problèmes de maintenance et de sécurité. La maintenance SerializableAttribute
sur les types signifie que ces types doivent être testés pour les modifications de sérialisation de version à version et éventuellement pour les modifications de sérialisation de framework à framework. Le développement de ces types est donc plus difficile et sa maintenance peut être coûteuse. Ces types ne disposent d’aucun scénario de sérialisation binaire connu, ce qui réduit l’impact de la suppression de l’attribut.
Pour plus d’informations, consultez Sérialisation binaire.
Version introduite
3.0
Action recommandée
Mettez à jour tout code qui peut dépendre de ces types marqués comme sérialisables.
Category
Windows Forms
API affectées
- None
Commutateur de compatibilité AllowUpdateChildControlIndexForTabControls non pris en charge
Le commutateur de compatibilité Switch.System.Windows.Forms.AllowUpdateChildControlIndexForTabControls
est pris en charge dans Windows Forms sur .NET Framework 4.6 et versions ultérieures, mais il n’est pas pris en charge sur .NET Core ni .NET 5.0 et versions ultérieures.
Description de la modification
Dans .NET Framework 4.6 et versions ultérieures, la sélection d’un onglet réorganise sa collection de contrôles. Le commutateur de compatibilité Switch.System.Windows.Forms.AllowUpdateChildControlIndexForTabControls
permet à une application d’ignorer cette réorganisation quand ce comportement n’est pas souhaitable.
Dans .NET Core et .NET 5.0 et versions ultérieures, le commutateur Switch.System.Windows.Forms.AllowUpdateChildControlIndexForTabControls
n’est pas pris en charge.
Version introduite
3.0
Action recommandée
Supprimez le commutateur. Le commutateur n’est pas pris en charge et aucune autre fonctionnalité n’est disponible.
Category
Windows Forms
API affectées
- None
Commutateur de compatibilité DomainUpDown.UseLegacyScrolling non pris en charge
Le commutateur de compatibilité Switch.System.Windows.Forms.DomainUpDown.UseLegacyScrolling
qui a été introduit dans .NET Framework 4.7.1 n’est pas pris en charge dans Windows Forms sur .NET Core ni .NET 5.0 et versions ultérieures.
Description de la modification
À compter de .NET Framework 4.7.1, le commutateur de compatibilité Switch.System.Windows.Forms.DomainUpDown.UseLegacyScrolling
a permis aux développeurs de refuser les actions indépendantes DomainUpDown.DownButton() et DomainUpDown.UpButton(). Le commutateur a restauré le comportement hérité, dans lequel l’élément DomainUpDown.UpButton() est ignoré si le texte contextuel est présent, et le développeur doit utiliser l’action DomainUpDown.DownButton() sur le contrôle avant l’action DomainUpDown.UpButton(). Pour plus d’informations, consultez l’élément <AppContextSwitchOverrides>.
Dans .NET Core et .NET 5.0 et versions ultérieures, le commutateur Switch.System.Windows.Forms.DomainUpDown.UseLegacyScrolling
n’est pas pris en charge.
Version introduite
3.0
Action recommandée
Supprimez le commutateur. Le commutateur n’est pas pris en charge et aucune autre fonctionnalité n’est disponible.
Category
Windows Forms
API affectées
Commutateur de compatibilité DoNotLoadLatestRichEditControl non pris en charge
Le commutateur de compatibilité Switch.System.Windows.Forms.UseLegacyImages
qui a été introduit dans .NET Framework 4.7.1 n’est pas pris en charge dans Windows Forms sur .NET Core ni .NET 5.0 et versions ultérieures.
Description de la modification
Dans .NET Framework 4.6.2 et les versions précédentes, le contrôle RichTextBox instancie le contrôle RichEdit v3.0 Win32 et pour les applications qui ciblent .NET Framework 4.7.1, le contrôle RichTextBox instancie RichEdit v4.1 (dans msftedit.dll). Le commutateur de compatibilité Switch.System.Windows.Forms.DoNotLoadLatestRichEditControl
a été introduit pour permettre aux applications qui ciblent .NET Framework 4.7.1 et versions ultérieures de refuser le nouveau contrôle RichEdit v4.1 et d’utiliser l’ancien contrôle RichEdit v3 à la place.
Dans .NET Core et .NET 5.0 et versions ultérieures, le commutateur Switch.System.Windows.Forms.DoNotLoadLatestRichEditControl
n’est pas pris en charge. Seules les nouvelles versions du contrôle RichTextBox sont prises en charge.
Version introduite
3.0
Action recommandée
Supprimez le commutateur. Le commutateur n’est pas pris en charge et aucune autre fonctionnalité n’est disponible.
Category
Windows Forms
API affectées
Commutateur de compatibilité DoNotSupportSelectAllShortcutInMultilineTextBox non pris en charge
Le commutateur de compatibilité Switch.System.Windows.Forms.DoNotSupportSelectAllShortcutInMultilineTextBox
qui a été introduit dans .NET Framework 4.6.1 n’est pas pris en charge dans Windows Forms sur .NET Core ni .NET 5.0 et versions ultérieures.
Description de la modification
À compter de .NET Framework 4.6.1, la sélection de la touche de raccourci Ctrl + A dans un contrôle TextBox sélectionnait tout le texte. Dans .NET Framework 4.6 et les versions précédentes, la sélection de la touche de raccourci Ctrl + A ne pouvait pas sélectionner tout le texte si les propriétés Textbox.ShortcutsEnabled et TextBox.Multiline étaient définies sur true
. Le commutateur de compatibilité Switch.System.Windows.Forms.DoNotSupportSelectAllShortcutInMultilineTextBox
a été introduit dans .NET Framework 4.6.1 pour conserver le comportement d’origine. Pour plus d'informations, consultez TextBox.ProcessCmdKey.
Dans .NET Core et .NET 5.0 et versions ultérieures, le commutateur Switch.System.Windows.Forms.DoNotSupportSelectAllShortcutInMultilineTextBox
n’est pas pris en charge.
Version introduite
3.0
Action recommandée
Supprimez le commutateur. Le commutateur n’est pas pris en charge et aucune autre fonctionnalité n’est disponible.
Category
Windows Forms
API affectées
- None
Commutateur de compatibilité DontSupportReentrantFilterMessage non pris en charge
Le commutateur de compatibilité Switch.System.Windows.Forms.DontSupportReentrantFilterMessage
qui a été introduit dans .NET Framework 4.6.1 n’est pas pris en charge dans Windows Forms sur .NET Core ni .NET 5.0 et versions ultérieures.
Description de la modification
À compter de .NET Framework 4.6.1, le commutateur de compatibilité Switch.System.Windows.Forms.DontSupportReentrantFilterMessage
traite les exceptions IndexOutOfRangeException possibles quand le message Application.FilterMessage est appelé avec une implémentation IMessageFilter.PreFilterMessage personnalisée. Pour plus d’informations, consultez Atténuation : implémentations IMessageFilter.PreFilterMessage personnalisées.
Dans .NET Core et .NET 5.0 et versions ultérieures, le commutateur Switch.System.Windows.Forms.DontSupportReentrantFilterMessage
n’est pas pris en charge.
Version introduite
3.0
Action recommandée
Supprimez le commutateur. Le commutateur n’est pas pris en charge et aucune autre fonctionnalité n’est disponible.
Category
Windows Forms
API affectées
Commutateur de compatibilité EnableVisualStyleValidation non pris en charge
Le commutateur de compatibilité Switch.System.Windows.Forms.EnableVisualStyleValidation
n’est pas pris en charge dans Windows Forms sur .NET Core ni .NET 5.0 et versions ultérieures.
Description de la modification
Dans .NET Framework, le commutateur de compatibilité Switch.System.Windows.Forms.EnableVisualStyleValidation
permettait à une application de refuser la validation des styles visuels fournis dans un formulaire numérique.
Dans .NET Core et .NET 5.0 et versions ultérieures, le commutateur Switch.System.Windows.Forms.EnableVisualStyleValidation
n’est pas pris en charge.
Version introduite
3.0
Action recommandée
Supprimez le commutateur. Le commutateur n’est pas pris en charge et aucune autre fonctionnalité n’est disponible.
Category
Windows Forms
API affectées
- None
Commutateur de compatibilité UseLegacyContextMenuStripSourceControlValue non pris en charge
Le commutateur de compatibilité Switch.System.Windows.Forms.UseLegacyContextMenuStripSourceControlValue
qui a été introduit dans .NET Framework 4.7.2 n’est pas pris en charge dans Windows Forms sur .NET Core ni .NET 5.0 et versions ultérieures.
Description de la modification
À compter de .NET Framework 4.7.2, le commutateur de compatibilité Switch.System.Windows.Forms.UseLegacyContextMenuStripSourceControlValue
permet au développeur de refuser le nouveau comportement de la propriété ContextMenuStrip.SourceControl, qui retourne désormais une référence au contrôle de code source. Le comportement précédent de la propriété consistait à retourner null
. Pour plus d’informations, consultez l’élément <AppContextSwitchOverrides>.
Dans .NET Core et .NET 5.0 et versions ultérieures, le commutateur Switch.System.Windows.Forms.UseLegacyContextMenuStripSourceControlValue
n’est pas pris en charge.
Version introduite
3.0
Action recommandée
Supprimez le commutateur. Le commutateur n’est pas pris en charge et aucune autre fonctionnalité n’est disponible.
Category
Windows Forms
API affectées
Commutateur de compatibilité UseLegacyImages non pris en charge
Le commutateur de compatibilité Switch.System.Windows.Forms.UseLegacyImages
qui a été introduit dans .NET Framework 4.8 n’est pas pris en charge dans Windows Forms sur .NET Core ni .NET 5.0 et versions ultérieures.
Description de la modification
À compter de .NET Framework 4.8, le commutateur de compatibilité Switch.System.Windows.Forms.UseLegacyImages
résolvait les problèmes de mise à l’échelle d’images possibles dans les scénarios ClickOnce dans des environnements DPI élevés. Quand le commutateur est défini sur true
, il permet à l’utilisateur de restaurer la mise à l’échelle d’images héritées sur des écrans haute résolution dont la mise à l’échelle est définie sur une valeur supérieure à 100 %. Pour plus d’informations, consultez les notes de publication de .NET Framework 4.8 sur GitHub.
Dans .NET Core et .NET 5.0 et versions ultérieures, le commutateur Switch.System.Windows.Forms.UseLegacyImages
n’est pas pris en charge.
Version introduite
3.0
Action recommandée
Supprimez le commutateur. Le commutateur n’est pas pris en charge et aucune autre fonctionnalité n’est disponible.
Category
Windows Forms
API affectées
- None
Les modèles About et SplashScreen sont rompus
Les fichiers About.vb
et SplashScreen.vb
générés par Visual Studio contiennent des références aux types dans l’espace de noms My
qui ne sont pas disponibles dans .NET Core 3.0 et 3.1.
Version introduite
3.0
Description de la modification
.NET Core 3.0 et 3.1 ne contiennent pas de support complet de Visual Basic My
. Les modèles de formulaires À propos et SplashScreen dans les applications Visual Studio pour Visual Basic Windows Forms font référence aux propriétés du type My.Application.Info
qui ne sont pas disponibles.
Action recommandée
Le support de Visual Basic My
a été amélioré dans .NET 5, mettez à niveau votre projet vers .NET 5 ou version ultérieure.
-ou-
Corrigez les erreurs du compilateur dans les types À propos et SplashScreen dans votre application. Utilisez la classe System.Reflection.Assembly
pour obtenir les informations fournies par le type My.Application.Info
. Un port normal des deux formulaires est disponible ici.
Conseil
Il s’agit d’exemples de code non optimisés. La liste des attributs doit être mise en cache pour réduire le temps de chargement du formulaire.
À propos de
Imports System.Reflection
Public NotInheritable Class About
Private Sub about_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' Set the title of the form.
Dim applicationTitle As String = Assembly.GetExecutingAssembly().GetCustomAttribute(Of AssemblyTitleAttribute)()?.Title
If String.IsNullOrEmpty(applicationTitle) Then
applicationTitle = System.IO.Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().GetName().Name)
End If
Me.Text = String.Format("About {0}", applicationTitle)
' Initialize all of the text displayed on the About Box.
' TODO: Customize the application's assembly information in the "Application" pane of the project
' properties dialog (under the "Project" menu).
Me.LabelProductName.Text = If(Assembly.GetExecutingAssembly().GetCustomAttribute(Of AssemblyProductAttribute)()?.Product, "")
Me.LabelVersion.Text = String.Format("Version {0}", Assembly.GetExecutingAssembly().GetName().Version)
Me.LabelCopyright.Text = If(Assembly.GetExecutingAssembly().GetCustomAttribute(Of AssemblyCopyrightAttribute)()?.Copyright, "")
Me.LabelCompanyName.Text = If(Assembly.GetExecutingAssembly().GetCustomAttribute(Of AssemblyCompanyAttribute)()?.Company, "")
Me.TextBoxDescription.Text = If(Assembly.GetExecutingAssembly().GetCustomAttribute(Of AssemblyDescriptionAttribute)()?.Description, "")
End Sub
Private Sub OKButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OKButton.Click
Me.Close()
End Sub
End Class
SplashScreen
Imports System.Reflection
Public NotInheritable Class SplashScreen
Private Sub SplashScreen1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'Set up the dialog text at runtime according to the application's assembly information.
'TODO: Customize the application's assembly information in the "Application" pane of the project
' properties dialog (under the "Project" menu).
'Application title
Dim appTitle As String = Assembly.GetExecutingAssembly().GetCustomAttribute(Of AssemblyTitleAttribute)()?.Title
If String.IsNullOrEmpty(appTitle) Then
appTitle = System.IO.Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().GetName().Name)
End If
ApplicationTitle.Text = appTitle
Dim versionValue = Assembly.GetExecutingAssembly().GetName().Version
'Format the version information using the text set into the Version control at design time as the
' formatting string. This allows for effective localization if desired.
' Build and revision information could be included by using the following code and changing the
' Version control's designtime text to "Version {0}.{1:00}.{2}.{3}" or something similar. See
' String.Format() in Help for more information.
'
' Version.Text = System.String.Format(Version.Text, versionValue.Major, versionValue.Minor, versionValue.Build, versionValue.Revision)
Version.Text = System.String.Format(Version.Text, versionValue.Major, versionValue.Minor)
'Copyright info
Copyright.Text = If(Assembly.GetExecutingAssembly().GetCustomAttribute(Of AssemblyCopyrightAttribute)()?.Copyright, "")
End Sub
End Class
Category
Visual Basic Windows Forms
API affectées
None