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ść:
.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:
- 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
Wprowadzona wersja
3.1
Zalecana akcja
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
- 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
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
Zalecana akcja
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.
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:
Ta zmiana została wprowadzona w celu dostosowania do wytycznych dotyczących środowiska użytkownika systemu Windows .
Wprowadzona wersja
3.0
Zalecana akcja
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:
W programie .NET Core 3.0 windows Forms używa nowszej kontrolki opartej na modelu COM wprowadzonej w systemie Windows Vista:
.NET Core
Wersja wprowadzona
3.0
Zalecana akcja
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.
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
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
Zalecana akcja
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
Zalecana akcja
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
Zalecana akcja
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
Zalecana akcja
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
Zalecana akcja
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
Zalecana akcja
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
Zalecana akcja
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
Zalecana akcja
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 true
przełą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
Zalecana akcja
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.
Zalecana akcja
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 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