Udostępnij za pośrednictwem


Istotne zmiany w formularzach Windows Forms dla platformy .NET Core 3.0 i 3.1

Obsługa formularzy systemu Windows została dodana do platformy .NET Core w wersji 3.0. Artykuł wymienia przełomowe zmiany dla Windows Forms w wersjach platformy .NET, w których zostały wprowadzone. Jeśli uaktualniasz aplikację Windows Forms z programu .NET Framework lub z poprzedniej wersji platformy .NET Core (3.0 lub nowszej), ten artykuł dotyczy Ciebie.

Na tej stronie udokumentowane są następujące zmiany powodujące niezgodność:

Zmiana powodująca niezgodność Wprowadzona wersja
Usunięte kontrolki 3.1
zdarzenie CellFormatting nie zostało zgłoszone, jeśli etykietka narzędzia jest wyświetlana 3.1
Control.DefaultFont został zmieniony na Segoe UI 9 pt 3.0
modernizacja folderuBrowserDialog 3.0
SerializableAttribute usunięty z niektórych typów formularzy systemu Windows 3.0
Przełącznik zgodności AllowUpdateChildControlIndexForTabControls nie jest obsługiwany 3.0
Przełącznik zgodności DomainUpDown.UseLegacyScrolling nie jest obsługiwany 3.0
Przełącznik zgodności DoNotLoadLatestRichEditControl nie jest obsługiwany 3.0
przełącznik zgodności DoNotSupportSelectAllShortcutInMultilineTextBox nie jest obsługiwany 3.0
Przełącznik zgodności DontSupportReentrantFilterMessage nie jest obsługiwany 3.0
przełącznik zgodności EnableVisualStyleValidation nie jest obsługiwany 3.0
przełącznik zgodności UseLegacyContextMenuStripSourceControlValue nie jest obsługiwany 3.0
Przełącznik zgodności UseLegacyImages nie jest obsługiwany 3.0
szablony About and SplashScreen są uszkodzone dla Visual Basic 3.0

.NET Core 3.1

Usunięte kontrolki

Począwszy od platformy .NET Core 3.1, niektóre kontrolki windows Forms nie są już dostępne.

Zmień opis

Począwszy od platformy .NET Core 3.1, różne kontrolki windows Forms nie są już dostępne. Kontrolki zastępcze, które mają lepszy projekt i obsługę, zostały wprowadzone w programie .NET Framework 2.0. Przestarzałe kontrolki zostały wcześniej usunięte z przybornika projektanta, ale nadal można je było wykorzystywać.

Następujące typy nie są już dostępne:

Wprowadzona wersja

3.1

Każda usunięta kontrolka ma zalecaną kontrolkę zastępczą. Zapoznaj się z następującą tabelą:

Usunięto element sterujący (API) Zalecane zastąpienie Powiązane interfejsy API, które są usuwane
Menu kontekstowe ContextMenuStrip
DataGrid DataGridView DataGridCell, DataGridRow, DataGridTableCollection, DataGridColumnCollection, DataGridTableStyle, DataGridColumnStyle, DataGridLineStyle, DataGridParentRowsLabel, DataGridParentRowsLabelStyle, DataGridBoolColumn, DataGridTextBox, GridColumnStylesCollection, GridTableStylesCollection, HitTestType
Menu Główne MenuStrip
Menu ToolStripDropDown, ToolStripDropDownMenu KolekcjaElementówMenu
MenuItem ToolStripMenuItem
Pasek narzędzi ToolStrip Wygląd Paska Narzędzi
ToolBarButton ToolStripButton ToolBarButtonClickEventArgs, ToolBarButtonClickEventHandler, ToolBarButtonStyle, ToolBarTextAlign

Kategoria

Formularze systemu Windows

Interfejsy API, których dotyczy problem


Zdarzenie formatowania komórek nie jest zgłaszane, jeśli jest wyświetlana etykietka narzędzia

DataGridView teraz pokazuje tekst komórki i podpowiedzi o błędach, gdy najeżdża się myszką lub wybiera klawiaturą. Jeśli zostanie wyświetlona etykietka narzędzia, zdarzenie DataGridView.CellFormatting nie zostanie zgłoszone.

Zmień opis

Przed programem .NET Core 3.1 DataGridView, który miał właściwość ShowCellToolTips ustawioną na true pokazywał etykietkę narzędzia dla tekstu komórki i błędy po umieszczeniu wskaźnika myszy na komórce. Etykietki narzędzi nie były wyświetlane, gdy komórka została wybrana za pomocą klawiatury (na przykład za pomocą Tab, skrótów lub nawigacji strzałką). Jeśli użytkownik edytował komórkę, a następnie, podczas gdy DataGridView był nadal w trybie edycji, najechał kursorem na komórkę, która nie miała ustawionej właściwości ToolTipText, zostało wywołane zdarzenie CellFormatting, aby sformatować tekst komórki do wyświetlenia w komórce.

Aby spełnić standardy ułatwień dostępu, począwszy od .NET Core 3.1, DataGridView, która ma właściwość ShowCellToolTips ustawioną na true, pokazuje etykiety narzędzi dla tekstu komórki i błędów nie tylko wtedy, gdy komórka jest najechana kursorem, ale także gdy jest wybrana za pomocą klawiatury. W wyniku tej zmiany zdarzenie CellFormatting nie jest zgłaszane, gdy komórki, które nie mają właściwości ToolTipText, są najechane kursorem, gdy DataGridView znajduje się w trybie edycji. Zdarzenie nie jest wywoływane, ponieważ zawartość zatrzymanej komórki jest wyświetlana jako etykietka narzędzia, a nie wyświetlana w komórce.

Wersja wprowadzona

3.1

Refaktoryzuj dowolny kod, który zależy od zdarzenia CellFormatting, podczas gdy DataGridView jest w trybie edycji.

Kategoria

Formularze systemu Windows

Interfejsy API, których dotyczy problem

Żaden


.NET Core 3.0

Domyślna czcionka kontrolki została zmieniona na Segoe UI 9 pkt

Zmień opis

W programie .NET Framework właściwość Control.DefaultFont została ustawiona na Microsoft Sans Serif 8.25 pt. Na poniższej ilustracji przedstawiono okno, które używa czcionki domyślnej.

Domyślna czcionka kontrolki w programie .NET Framework

Począwszy od platformy .NET Core 3.0, domyślna czcionka jest ustawiona na Segoe UI 9 pt (ta sama czcionka co SystemFonts.MessageBoxFont). W wyniku tej zmiany formularze i kontrolki mają rozmiar około 27% większe, aby uwzględnić większy rozmiar nowej czcionki domyślnej. Na przykład:

Domyślna czcionka kontrolki na platformie .NET Core

Ta zmiana została wprowadzona w celu dostosowania do wytycznych dotyczących środowiska użytkownika systemu Windows .

Wprowadzona wersja

3.0

Ze względu na zmianę rozmiaru formularzy i kontrolek upewnij się, że aplikacja jest poprawnie renderowana.

Aby zachować oryginalną czcionkę dla pojedynczego formularza, ustaw domyślną czcionkę na Microsoft Sans Serif 8.25 pt. Na przykład:

public MyForm()
{
    InitializeComponent();
    Font = new Font(new FontFamily("Microsoft Sans Serif"), 8.25f);
}

Możesz też zmienić czcionkę domyślną dla całej aplikacji na jeden z następujących sposobów:

  • Ustawiając właściwość ApplicationDefaultFont MSBuild na "Microsoft Sans Serif, 8.25pt". Jest to preferowana technika, ponieważ umożliwia programowi Visual Studio używanie nowych ustawień w projektancie.

    <PropertyGroup>
      <ApplicationDefaultFont>Microsoft Sans Serif, 8.25pt</ApplicationDefaultFont>
    </PropertyGroup>
    
  • Wywołując 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());
        }
    }
    

Kategoria

  • Formularze systemu Windows

Interfejsy API, których dotyczy problem

Żaden.


Modernizacja folderuBrowserDialog

Kontrolka FolderBrowserDialog została zmieniona w aplikacjach Windows Forms dla platformy .NET Core.

Zmień opis

W programie .NET Framework formularze systemu Windows używają następującego okna dialogowego dla kontrolki FolderBrowserDialog:

FolderBrowserDialogControl w programie .NET Framework

W programie .NET Core 3.0 windows Forms używa nowszej kontrolki opartej na modelu COM wprowadzonej w systemie Windows Vista:

FolderBrowserDialogControl w .NET Core

Wersja wprowadzona

3.0

Okno dialogowe zostanie automatycznie uaktualnione.

Jeśli chcesz zachować oryginalne okno dialogowe, ustaw właściwość FolderBrowserDialog.AutoUpgradeEnabled na false przed wyświetleniem okna dialogowego, jak pokazano na poniższym fragmentze kodu:

var dialog = new FolderBrowserDialog();
dialog.AutoUpgradeEnabled = false;
dialog.ShowDialog();

Kategoria

Formularze systemu Windows

Interfejsy API, których dotyczy problem


SerializableAttribute usunięto z niektórych typów formularzy systemu Windows

SerializableAttribute został usunięty z niektórych klas windows Forms, które nie mają znanych scenariuszy serializacji binarnej.

Zmień opis

Następujące typy są oznaczone SerializableAttribute na platformie .NET Framework, ale ten atrybut został usunięty w platformie .NET Core.

Historycznie ten mechanizm serializacji miał poważne obawy związane z konserwacją i bezpieczeństwem. Utrzymywanie SerializableAttribute na typach oznacza, że te typy muszą być testowane pod kątem zmian serializacji od wersji do wersji i potencjalnie zmian serializacji pomiędzy różnymi platformami. Utrudnia to rozwój tych typów i może być kosztowny do utrzymania. Te typy nie mają znanych scenariuszy serializacji binarnej, co minimalizuje wpływ usunięcia atrybutu.

Aby uzyskać więcej informacji, zobacz Binary serialization.

Wersja wprowadzona

3.0

Zaktualizuj dowolny kod, który może zależeć od tych typów oznaczonych jako możliwe do serializacji.

Kategoria

Formularze systemu Windows

Interfejsy API, których dotyczy problem

  • Żaden

Przełącznik zgodności AllowUpdateChildControlIndexForTabControls nie jest obsługiwany

Przełącznik zgodności Switch.System.Windows.Forms.AllowUpdateChildControlIndexForTabControls jest obsługiwany w systemach Windows Forms w programie .NET Framework 4.6 lub nowszych wersjach, ale nie jest obsługiwany na platformie .NET Core lub .NET 5.0 i nowszych wersjach.

Zmień opis

W .NET Framework 4.6 i nowszych wersjach, wybranie karty zmienia kolejność jej kolekcji kontrolek. Przełącznik zgodności Switch.System.Windows.Forms.AllowUpdateChildControlIndexForTabControls umożliwia aplikacji pomijanie tej zmiany kolejności, gdy to zachowanie jest niepożądane.

W programach .NET Core i .NET 5.0 lub nowszych przełącznik Switch.System.Windows.Forms.AllowUpdateChildControlIndexForTabControls nie jest obsługiwany.

Wersja wprowadzona

3.0

Usuń przełącznik. Przełącznik nie jest obsługiwany i nie jest dostępna żadna alternatywna funkcja.

Kategoria

Formularze systemu Windows

Interfejsy API, których dotyczy problem

  • Żaden

DomainUpDown.UseLegacyScrolling przełącznik zgodności nie jest obsługiwany

Przełącznik zgodności Switch.System.Windows.Forms.DomainUpDown.UseLegacyScrolling wprowadzony w programie .NET Framework 4.7.1 nie jest obsługiwany w programie Windows Forms na platformie .NET Core lub .NET 5.0 i nowszych wersjach.

Zmień opis

Od .NET Framework 4.7.1, przełącznik zgodności Switch.System.Windows.Forms.DomainUpDown.UseLegacyScrolling umożliwia deweloperom wykluczenie niezależnych działań DomainUpDown.DownButton() i DomainUpDown.UpButton(). Przełącznik przywrócił bardziej przyzwyczajone zachowanie, w którym DomainUpDown.UpButton() jest ignorowany, jeśli tekst kontekstu jest obecny, a programista musi użyć akcji DomainUpDown.DownButton() na kontrolce przed akcją DomainUpDown.UpButton(). Aby uzyskać więcej informacji, zobacz <AppContextSwitchOverrides> element.

W programach .NET Core i .NET 5.0 lub nowszych przełącznik Switch.System.Windows.Forms.DomainUpDown.UseLegacyScrolling nie jest obsługiwany.

Wersja wprowadzona

3.0

Usuń przełącznik. Przełącznik nie jest obsługiwany i nie jest dostępna żadna alternatywna funkcja.

Kategoria

Formularze systemu Windows

Interfejsy API, których dotyczy problem


Przełącznik zgodności DoNotLoadLatestRichEditControl nie jest obsługiwany

Przełącznik zgodności Switch.System.Windows.Forms.UseLegacyImages wprowadzony w programie .NET Framework 4.7.1 nie jest obsługiwany w programie Windows Forms na platformie .NET Core lub .NET 5.0 i nowszych wersjach.

Zmień opis

W programie .NET Framework 4.6.2 i poprzednich wersjach kontrolka RichTextBox instancjuje kontrolkę Win32 RichEdit w wersji 3.0, a dla aplikacji działających na .NET Framework 4.7.1 kontrolka RichTextBox instancjuje RichEdit w wersji 4.1 (w msftedit.dll). Przełącznik zgodności Switch.System.Windows.Forms.DoNotLoadLatestRichEditControl został wprowadzony, aby umożliwić aplikacjom przeznaczonym dla programu .NET Framework 4.7.1 i nowszych wersji rezygnację z nowej kontrolki RichEdit w wersji 4.1 i zamiast tego użyć starej kontrolki RichEdit w wersji 3.

W wersjach .NET Core i .NET 5.0 i nowszych przełącznik Switch.System.Windows.Forms.DoNotLoadLatestRichEditControl nie jest obsługiwany. Obsługiwane są tylko nowe wersje kontrolki RichTextBox.

Wprowadzona wersja

3.0

Usuń przełącznik. Przełącznik nie jest obsługiwany i nie jest dostępna żadna alternatywna funkcja.

Kategoria

Formularze systemu Windows

Interfejsy API, których dotyczy problem


Przełącznik zgodności o nazwie DoNotSupportSelectAllShortcutInMultilineTextBox nie jest wspierany.

Przełącznik zgodności Switch.System.Windows.Forms.DoNotSupportSelectAllShortcutInMultilineTextBox, który został wprowadzony w programie .NET Framework 4.6.1, nie jest obsługiwany w systemach Windows Forms na platformie .NET Core i .NET 5.0 i nowszych wersjach.

Zmień opis

Począwszy od programu .NET Framework 4.6.1, wybranie skrótu klawiszowego Ctrl + w kontrolce TextBox powoduje zaznaczenie całego tekstu. W programie .NET Framework 4.6 i poprzednich wersjach wybranie klawisza skrótu Ctrl + nie zaznaczało całego tekstu, jeśli Textbox.ShortcutsEnabled oraz właściwości TextBox.Multiline były ustawione na true. Przełącznik zgodności Switch.System.Windows.Forms.DoNotSupportSelectAllShortcutInMultilineTextBox został wprowadzony w programie .NET Framework 4.6.1, aby zachować oryginalne zachowanie. Aby uzyskać więcej informacji, zobacz TextBox.ProcessCmdKey.

W wersjach .NET Core i .NET 5.0 i nowszych przełącznik Switch.System.Windows.Forms.DoNotSupportSelectAllShortcutInMultilineTextBox nie jest obsługiwany.

Wersja wprowadzona

3.0

Usuń przełącznik. Przełącznik nie jest obsługiwany i nie jest dostępna żadna alternatywna funkcja.

Kategoria

Formularze systemu Windows

Interfejsy API, których dotyczy problem

  • Żaden

Przełącznik zgodności DontSupportReentrantFilterMessage nie jest obsługiwany

Przełącznik zgodności Switch.System.Windows.Forms.DontSupportReentrantFilterMessage, który został wprowadzony w programie .NET Framework 4.6.1, nie jest obsługiwany w systemach Windows Forms na platformie .NET Core i .NET 5.0 i nowszych wersjach.

Zmień opis

Począwszy od programu .NET Framework 4.6.1, przełącznik zgodności Switch.System.Windows.Forms.DontSupportReentrantFilterMessage adresuje możliwe IndexOutOfRangeException wyjątki, gdy komunikat Application.FilterMessage jest wywoływany z niestandardową implementacją IMessageFilter.PreFilterMessage. Aby uzyskać więcej informacji, zobacz Mitigation: Custom IMessageFilter.PreFilterMessage Implementations.

W programach .NET Core i .NET 5.0 lub nowszych przełącznik Switch.System.Windows.Forms.DontSupportReentrantFilterMessage nie jest obsługiwany.

Wersja wprowadzona

3.0

Usuń przełącznik. Przełącznik nie jest obsługiwany i nie jest dostępna żadna alternatywna funkcja.

Kategoria

Formularze systemu Windows

Interfejsy API, których dotyczy problem


Przełącznik zgodności EnableVisualStyleValidation nie jest obsługiwany

Przełącznik zgodności Switch.System.Windows.Forms.EnableVisualStyleValidation nie jest obsługiwany w programie Windows Forms na platformie .NET Core lub .NET 5.0 lub nowszym.

Zmień opis

W programie .NET Framework przełącznik zgodności Switch.System.Windows.Forms.EnableVisualStyleValidation pozwolił aplikacji zrezygnować z walidacji stylów wizualizacji dostarczonych w postaci liczbowej.

W programach .NET Core i .NET 5.0 lub nowszych przełącznik Switch.System.Windows.Forms.EnableVisualStyleValidation nie jest obsługiwany.

Wersja wprowadzona

3.0

Usuń przełącznik. Przełącznik nie jest obsługiwany i nie jest dostępna żadna alternatywna funkcja.

Kategoria

Formularze systemu Windows

Interfejsy API, których dotyczy problem

  • Żaden

Przełącznik zgodności UseLegacyContextMenuStripSourceControlValue nie jest obsługiwany

Przełącznik zgodności Switch.System.Windows.Forms.UseLegacyContextMenuStripSourceControlValue wprowadzony w programie .NET Framework 4.7.2 nie jest obsługiwany w programie Windows Forms na platformie .NET Core lub .NET 5.0 i nowszych wersjach.

Zmień opis

Począwszy od programu .NET Framework 4.7.2, przełącznik zgodności Switch.System.Windows.Forms.UseLegacyContextMenuStripSourceControlValue umożliwia deweloperowi rezygnację z nowego zachowania właściwości ContextMenuStrip.SourceControl, która teraz zwraca odwołanie do kontroli źródła. Poprzednie zachowanie właściwości polegało na zwracaniu wartości null. Aby uzyskać więcej informacji, zobacz <AppContextSwitchOverrides> element.

W programach .NET Core i .NET 5.0 lub nowszych przełącznik Switch.System.Windows.Forms.UseLegacyContextMenuStripSourceControlValue nie jest obsługiwany.

Wersja wprowadzona

3.0

Usuń przełącznik. Przełącznik nie jest obsługiwany i nie jest dostępna żadna alternatywna funkcja.

Kategoria

Formularze systemu Windows

Interfejsy API, których dotyczy problem


Przełącznik zgodności UseLegacyImages nie jest obsługiwany

Przełącznik zgodności Switch.System.Windows.Forms.UseLegacyImages wprowadzony w programie .NET Framework 4.8 nie jest obsługiwany w systemie Windows Forms na platformie .NET Core lub .NET 5.0 lub nowszym.

Zmień opis

Począwszy od programu .NET Framework 4.8, przełącznik zgodności Switch.System.Windows.Forms.UseLegacyImages rozwiązał możliwe problemy ze skalowaniem obrazów w scenariuszach Technologii ClickOnce w środowiskach o wysokiej rozdzielczości DPI. W przypadku ustawienia wartości trueprzełącznik umożliwia użytkownikowi przywrócenie starszego skalowania obrazów na ekranach o wysokiej rozdzielczości DPI, których skala jest ustawiona na większą niż 100%. Aby uzyskać więcej informacji, zobacz uwagi do wydania programu .NET Framework 4.8 w serwisie GitHub.

W programach .NET Core i .NET 5.0 lub nowszych przełącznik Switch.System.Windows.Forms.UseLegacyImages nie jest obsługiwany.

Wersja wprowadzona

3.0

Usuń przełącznik. Przełącznik nie jest obsługiwany i nie jest dostępna żadna alternatywna funkcja.

Kategoria

Formularze systemu Windows

Interfejsy API, których dotyczy problem

  • Żaden

Szablony About i SplashScreen są uszkodzone

Pliki About.vb i SplashScreen.vb generowane przez program Visual Studio zawierają odwołania do typów w przestrzeni nazw My, które nie są dostępne .NET Core 3.0 i 3.1.

Wersja wprowadzona

3.0

Zmień opis

Programy .NET Core 3.0 i 3.1 nie zawierają pełnej obsługi My Visual Basic. Szablony formularzy About i SplashScreen w aplikacjach Windows Forms Visual Basic w programie Visual Studio odwołują się do właściwości w typie My.Application.Info, które nie są dostępne.

Ulepszono obsługę programu Visual Basic My na platformie .NET 5, uaktualnij projekt do platformy .NET 5 lub nowszej.

-lub-

Napraw błędy kompilatora w typach About and SplashScreen. Użyj klasy System.Reflection.Assembly, aby uzyskać informacje podane przez typ My.Application.Info. W tym miejscu dostępny jest prosty port obu formularzy.

Napiwek

Jest to przykładowy kod i niezoptymalizowany. Lista atrybutów powinna być buforowana, aby skrócić czas ładowania formularza.

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

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

Kategoria

Visual Basic Windows Forms

Interfejsy API, których dotyczy problem

Żaden


Zobacz też