Zásadní změny ve Windows Forms pro .NET Core 3.0 a 3.1
Podpora modelu Windows Forms byla přidána do .NET Core ve verzi 3.0. Tento článek uvádí zásadní změny pro Windows Forms podle verze .NET, ve které byly zavedeny. Pokud upgradujete aplikaci Windows Forms z rozhraní .NET Framework nebo z předchozí verze .NET Core (3.0 nebo novější), tento článek se vás týká.
Na této stránce jsou popsané následující zásadní změny:
.NET Core 3.1
Odebrané ovládací prvky
Počínaje verzí .NET Core 3.1 už některé ovládací prvky Windows Forms nejsou k dispozici.
Změnit popis
Od verze .NET Core 3.1 už nejsou k dispozici různé ovládací prvky Windows Forms. V rozhraní .NET Framework 2.0 byly zavedeny náhradní ovládací prvky, které mají lepší návrh a podporu. Zastaralé ovládací prvky byly dříve odebrány z nástrojů návrháře, ale byly stále k dispozici k použití.
Následující typy už nejsou k dispozici:
- 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
Představená verze
3.1
Doporučená akce
Každý odebraný ovládací prvek má doporučený náhradní ovládací prvek. Projděte si následující tabulku:
Odebrání ovládacího prvku (API) | Doporučená náhrada | Přidružená rozhraní API, která se odeberou |
---|---|---|
Kontextové menu | ContextMenuStrip | |
DataGrid | Tabulkové zobrazení dat | DataGridCell, DataGridRow, DataGridTableCollection, DataGridColumnCollection, DataGridTableStyle, DataGridColumnStyle, DataGridLineStyle, DataGridParentRowsLabel, DataGridParentRowsLabelStyle, DataGridBoolColumn, DataGridTextBox, GridColumnStylesCollection, GridTableStylesCollection, HitTestType |
Hlavní nabídka | MenuStrip | |
Menu | ToolStripDropDown, ToolStripDropDownMenu | KolekcePoložekMenu |
MenuItem | ToolStripMenuItem | |
Panel nástrojů | ToolStrip | Vzhled nástrojové lišty |
tlačítko na panelu nástrojů | ToolStripButton | ToolBarButtonClickEventArgs, ToolBarButtonClickEventHandler, ToolBarButtonStyle, ToolBarTextAlign |
Kategorie
Windows Forms
Ovlivněná rozhraní API
- 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
Událost CellFormatting se nevyvolá, pokud je zobrazen tooltip.
DataGridView teď zobrazuje text buňky a popisy chyb při najetí myší a při výběru pomocí klávesnice. Pokud se zobrazí popis, událost DataGridView.CellFormatting se nevyvolá.
Změnit popis
Před .NET Core 3.1 DataGridView, který měl vlastnost ShowCellToolTips nastavenou na true
, zobrazil textový rámeček s textem buňky a chybami, když byla buňka přejeta myší. Popisy se nezobrazily, když byla buňka vybrána pomocí klávesnice (například použitím klávesy Tab, klávesových zkratek nebo navigace pomocí šipek). Pokud uživatel upravil buňku a potom, zatímco DataGridView byl stále v režimu úprav, najedl myší na buňku, která nemá nastavenou vlastnost ToolTipText, byla vyvolána událost CellFormatting pro formátování textu buňky pro zobrazení v buňce.
Aby byly splněny standardy přístupnosti, od .NET Core 3.1 zobrazí DataGridView, která má vlastnost ShowCellToolTips nastavenou na true
, nápovědy pro text a chyby buňky nejen tehdy, když je na buňku najeto myší, ale také když je vybraná pomocí klávesnice. V důsledku této změny není událost CellFormatting vyvolána, když je DataGridView v režimu úprav a jsou najeté myší buňky, které nemají nastavenou vlastnost ToolTipText. Událost není vyvolána, protože obsah najeté buňky se místo zobrazení v buňce zobrazí jako popis.
Představená verze
3.1
Doporučená akce
Refaktorovat jakýkoli kód, který závisí na události CellFormatting, zatímco DataGridView je v režimu úprav.
Kategorie
Windows Forms
Ovlivněná rozhraní API
Žádný
.NET Core 3.0
Výchozí písmo ovládacího prvku se změnilo na Segoe UI 9 pt
Změnit popis
V rozhraní .NET Framework byla vlastnost Control.DefaultFont nastavena na Microsoft Sans Serif 8.25 pt
. Následující obrázek znázorňuje okno, které používá výchozí písmo.
Počínaje verzí .NET Core 3.0 je výchozí písmo nastaveno na Segoe UI 9 pt
(stejné písmo jako SystemFonts.MessageBoxFont). V důsledku této změny mají formuláře a ovládací prvky velikost přibližně 27% větší, aby zohlednily větší velikost nového výchozího písma. Například:
Tato změna byla provedena v souladu s pokyny pro uživatelské prostředí windows (UX).
Zavedená verze
3.0
Doporučená akce
Vzhledem ke změně velikosti formulářů a ovládacích prvků se ujistěte, že se aplikace správně vykresluje.
Chcete-li zachovat původní písmo pro jeden formulář, nastavte jeho výchozí písmo na Microsoft Sans Serif 8.25 pt
. Například:
public MyForm()
{
InitializeComponent();
Font = new Font(new FontFamily("Microsoft Sans Serif"), 8.25f);
}
Nebo můžete změnit výchozí písmo pro celou aplikaci některým z následujících způsobů:
Nastavením vlastnosti
ApplicationDefaultFont
MSBuild na "Microsoft Sans Serif, 8.25pt". Toto je upřednostňovaná technika, protože umožňuje Visual Studio používat nová nastavení v návrhovém režimu.<PropertyGroup> <ApplicationDefaultFont>Microsoft Sans Serif, 8.25pt</ApplicationDefaultFont> </PropertyGroup>
Voláním 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()); } }
Kategorie
- Windows Forms
Ovlivněná rozhraní API
Žádný.
Modernizace složkyBrowserDialog
Ovládací prvek FolderBrowserDialog se v aplikacích Windows Forms pro .NET Core změnil.
Změnit popis
V rozhraní .NET Framework používá formuláře Windows pro ovládací prvek FolderBrowserDialog následující dialogové okno:
V rozhraní .NET Core 3.0 používá Windows Forms novější ovládací prvek založený na modelu COM, který byl zaveden v systému Windows Vista:
Zavedená verze
3.0
Doporučená akce
Dialogové okno se automaticky upgraduje.
Pokud chcete zachovat původní dialogové okno, nastavte vlastnost FolderBrowserDialog.AutoUpgradeEnabled na false
před zobrazením dialogového okna, jak je znázorněno v následujícím fragmentu kódu:
var dialog = new FolderBrowserDialog();
dialog.AutoUpgradeEnabled = false;
dialog.ShowDialog();
Kategorie
Windows Forms
Ovlivněná rozhraní API
SerializableAttribute odebrán z některých typů Windows Forms
SerializableAttribute byl odebrán z některých tříd Modelu Windows Forms, které nemají žádné známé scénáře binární serializace.
Změnit popis
Následující typy jsou zdobeny SerializableAttribute v rozhraní .NET Framework, ale atribut byl odebrán v .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
Tento mechanismus serializace má v minulosti vážné obavy ohledně údržby a zabezpečení. Udržování SerializableAttribute
u typů znamená, že tyto typy musí být testovány na změny serializace verze na verzi a potenciálně změny serializace rámce na rámec. To znesnadňuje vývoj těchto typů a může být nákladný na údržbu. Tyto typy nemají žádné známé scénáře binární serializace, které minimalizují dopad odebrání atributu.
Další informace viz „binární serializace“.
Představená verze
3.0
Doporučená akce
Aktualizujte veškerý kód, který může záviset na těchto typech, které jsou označené jako serializovatelné.
Kategorie
Windows Forms
Ovlivněná rozhraní API
- Žádný
Přepínač kompatibility AllowUpdateChildControlIndexForTabControls není podporován.
Přepínač kompatibility Switch.System.Windows.Forms.AllowUpdateChildControlIndexForTabControls
je podporován ve Windows Forms v rozhraní .NET Framework 4.6 a novějších verzích, ale nepodporuje se v .NET Core nebo .NET 5.0 a novějších verzích.
Změnit popis
V rozhraní .NET Framework verze 4.6 a novějších při výběru záložky se změní pořadí její kolekce ovládacích prvků. Přepínač kompatibility Switch.System.Windows.Forms.AllowUpdateChildControlIndexForTabControls
umožňuje aplikaci toto přeuspořádání přeskočit, pokud je toto chování nežádoucí.
V .NET Core a .NET 5.0 a novějších se přepínač Switch.System.Windows.Forms.AllowUpdateChildControlIndexForTabControls
nepodporuje.
Zavedená verze
3.0
Doporučená akce
Odeberte přepínač. Přepínač není podporovaný a není k dispozici žádná alternativní funkce.
Kategorie
Windows Forms
Ovlivněná rozhraní API
- Žádný
Přepínač kompatibility DomainUpDown.UseLegacyScrolling se nepodporuje.
Přepínač kompatibility Switch.System.Windows.Forms.DomainUpDown.UseLegacyScrolling
, který byl zaveden v rozhraní .NET Framework 4.7.1, není ve Windows Forms v .NET Core nebo .NET 5.0 a novějším podporován.
Změnit popis
Počínaje rozhraním .NET Framework 4.7.1 umožňuje přechod na kompatibilitu Switch.System.Windows.Forms.DomainUpDown.UseLegacyScrolling
vývojářům vyjádřit nesouhlas s nezávislými DomainUpDown.DownButton() a DomainUpDown.UpButton() akcemi. Přepínač obnovil starší verzi chování, ve kterém se DomainUpDown.UpButton() ignoruje, pokud je kontextový text k dispozici, a vývojář musí použít DomainUpDown.DownButton() akci ovládacího prvku před akcí DomainUpDown.UpButton(). Další informace naleznete v sekci <AppContextSwitchOverrides> element.
V .NET Core a .NET 5.0 a novějších se přepínač Switch.System.Windows.Forms.DomainUpDown.UseLegacyScrolling
nepodporuje.
Představená verze
3.0
Doporučená akce
Odeberte přepínač. Přepínač není podporovaný a není k dispozici žádná alternativní funkce.
Kategorie
Windows Forms
Ovlivněná rozhraní API
Nepodporovaný přepínač kompatibility DoNotLoadLatestRichEditControl
Přepínač kompatibility Switch.System.Windows.Forms.UseLegacyImages
, který byl zaveden v rozhraní .NET Framework 4.7.1, není ve Windows Forms v .NET Core nebo .NET 5.0 a novějším podporován.
Změnit popis
V rozhraní .NET Framework 4.6.2 a předchozích verzích vytvoří ovládací prvek RichTextBox instanci ovládacího prvku Win32 RichEdit verze 3.0 a pro aplikace, které cílí na rozhraní .NET Framework 4.7.1, RichTextBox ovládací prvek vytvoří instanci RichEdit v4.1 (v msftedit.dll). Přepínač kompatibility Switch.System.Windows.Forms.DoNotLoadLatestRichEditControl
byl zaveden tak, aby umožňoval aplikacím, které cílí na rozhraní .NET Framework 4.7.1 a novější verze, aby se odhlásily z nového ovládacího prvku RichEdit v4.1 a místo toho používaly starý ovládací prvek RichEdit v3.
V .NET Core a .NET 5.0 a novějších verzích se přepínač Switch.System.Windows.Forms.DoNotLoadLatestRichEditControl
nepodporuje. Podporují se jenom nové verze ovládacího prvku RichTextBox.
Představená verze
3.0
Doporučená akce
Odeberte přepínač. Přepínač není podporovaný a není k dispozici žádná alternativní funkce.
Kategorie
Windows Forms
Ovlivněná rozhraní API
Nepodporovaný přepínač kompatibility DoNotSupportSelectAllShortcutInMultilineTextBox není podporován
Přepínač kompatibility Switch.System.Windows.Forms.DoNotSupportSelectAllShortcutInMultilineTextBox
, který byl zaveden v rozhraní .NET Framework 4.6.1, není ve Windows Forms v .NET Core a .NET 5.0 a novějších podporovaný.
Změnit popis
Počínaje rozhraním .NET Framework 4.6.1 použijete-li klávesovou zkratku Ctrl + A v ovládacím prvku TextBox, je vybrán všechen text. V rozhraní .NET Framework 4.6 a předchozích verzích při použití klávesové zkratky Ctrl + A se nepodařilo vybrat veškerý text, pokud byly vlastnosti Textbox.ShortcutsEnabled a TextBox.Multiline nastaveny na true
. Přepínač kompatibility Switch.System.Windows.Forms.DoNotSupportSelectAllShortcutInMultilineTextBox
byl zaveden v rozhraní .NET Framework 4.6.1, aby se zachovalo původní chování. Další informace naleznete v tématu TextBox.ProcessCmdKey.
V .NET Core a .NET 5.0 a novějších verzích se přepínač Switch.System.Windows.Forms.DoNotSupportSelectAllShortcutInMultilineTextBox
nepodporuje.
Verze představená
3.0
Doporučená akce
Odeberte přepínač. Přepínač není podporovaný a není k dispozici žádná alternativní funkce.
Kategorie
Windows Forms
Ovlivněná rozhraní API
- Žádný
Přepínač kompatibility pro DontSupportReentrantFilterMessage není podporován.
Přepínač kompatibility Switch.System.Windows.Forms.DontSupportReentrantFilterMessage
, který byl zaveden v rozhraní .NET Framework 4.6.1, není ve Windows Forms v .NET Core a .NET 5.0 a novějších podporovaný.
Změnit popis
Počínaje rozhraním .NET Framework 4.6.1 řeší přepínač kompatibility Switch.System.Windows.Forms.DontSupportReentrantFilterMessage
možné výjimky IndexOutOfRangeException při zavolání zprávy Application.FilterMessage s vlastní implementací IMessageFilter.PreFilterMessage. Pro více informací viz Mitigation: Implementace vlastního IMessageFilter.PreFilterMessage.
V .NET Core a .NET 5.0 a novějších se přepínač Switch.System.Windows.Forms.DontSupportReentrantFilterMessage
nepodporuje.
Zavedená verze
3.0
Doporučená akce
Odeberte přepínač. Přepínač není podporovaný a není k dispozici žádná alternativní funkce.
Kategorie
Windows Forms
Ovlivněná rozhraní API
Přepínač kompatibility EnableVisualStyleValidation není podporován.
Přepínač kompatibility Switch.System.Windows.Forms.EnableVisualStyleValidation
není ve Windows Forms v .NET Core nebo .NET 5.0 a novějších podporovaný.
Změnit popis
V rozhraní .NET Framework přepínač kompatibility Switch.System.Windows.Forms.EnableVisualStyleValidation
povolil aplikaci vyjádřit nesouhlas s ověřováním vizuálních stylů zadaných v číselném formátu.
V .NET Core a .NET 5.0 a novějších se přepínač Switch.System.Windows.Forms.EnableVisualStyleValidation
nepodporuje.
Zavedená verze
3.0
Doporučená akce
Odeberte přepínač. Přepínač není podporovaný a není k dispozici žádná alternativní funkce.
Kategorie
Windows Forms
Ovlivněná rozhraní API
- Žádný
Kompatibilita přepínače UseLegacyContextMenuStripSourceControlValue není podporována.
Přepínač kompatibility Switch.System.Windows.Forms.UseLegacyContextMenuStripSourceControlValue
, který byl zaveden v rozhraní .NET Framework 4.7.2, není ve Windows Forms v .NET Core nebo .NET 5.0 a novějších podporovaný.
Změnit popis
Počínaje rozhraním .NET Framework 4.7.2 umožňuje přepínač kompatibility Switch.System.Windows.Forms.UseLegacyContextMenuStripSourceControlValue
vývojáři vyjádřit nesouhlas s novým chováním vlastnosti ContextMenuStrip.SourceControl, která nyní vrací odkaz na správu zdrojového kódu. Předchozí chování této vlastnosti bylo vrátit null
. Další informace naleznete v tématu <AppContextSwitchOverrides> element.
V .NET Core a .NET 5.0 a novějších se přepínač Switch.System.Windows.Forms.UseLegacyContextMenuStripSourceControlValue
nepodporuje.
Verze byla představena
3.0
Doporučená akce
Odeberte přepínač. Přepínač není podporovaný a není k dispozici žádná alternativní funkce.
Kategorie
Windows Forms
Ovlivněná rozhraní API
Přepínač kompatibility UseLegacyImages se nepodporuje.
Přepínač kompatibility Switch.System.Windows.Forms.UseLegacyImages
, který byl zaveden v rozhraní .NET Framework 4.8, není ve Windows Forms v .NET Core nebo .NET 5.0 a novějších podporovaný.
Změnit popis
Počínaje rozhraním .NET Framework 4.8 vyřešil přepínač kompatibility Switch.System.Windows.Forms.UseLegacyImages
možné problémy se škálováním obrázků ve scénářích ClickOnce v prostředích s vysokým rozlišením DPI. Pokud je nastavená hodnota true
, přepínač umožňuje uživateli obnovit starší měřítko obrázků na displejích s vysokým rozlišením DPI, jejichž měřítko je nastaveno na více než 100%. Další informace najdete v zprávě k vydání verze rozhraní .NET Framework 4.8 na GitHubu.
V .NET Core a .NET 5.0 a novějších se přepínač Switch.System.Windows.Forms.UseLegacyImages
nepodporuje.
Nová verze
3.0
Doporučená akce
Odeberte přepínač. Přepínač není podporovaný a není k dispozici žádná alternativní funkce.
Kategorie
Windows Forms
Ovlivněná rozhraní API
- Žádný
Šablony About a SplashScreen jsou poškozené
Soubory About.vb
a SplashScreen.vb
vygenerované sadou Visual Studio obsahují odkazy na typy v oboru názvů My
, které nejsou k dispozici .NET Core 3.0 a 3.1.
Představená verze
3.0
Změnit popis
.NET Core 3.0 a 3.1 neobsahují úplnou podporu visual basicu My
. Referenční vlastnosti
Doporučená akce
Podpora My
jazyka Visual Basic byla vylepšena v .NET 5, upgradujte projekt na .NET 5 nebo novější.
-nebo-
Opravte chyby kompilátoru v typech About a SplashScreen ve vaší aplikaci. Pomocí třídy System.Reflection.Assembly
získejte informace poskytované typem My.Application.Info
. Tady je k dispozici přímý port obou formulářů.
Spropitné
Toto je ukázkový kód a neoptimalizovaný. Seznam atributů by se měl ukládat do mezipaměti, aby se zkrátila doba načítání formuláře.
o
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
úvodní obrazovka
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
Kategorie
Visual Basic Windows Forms
Ovlivněná rozhraní API
Žádný