Note
ãã®ããŒãžã«ã¢ã¯ã»ã¹ããã«ã¯ãæ¿èªãå¿ èŠã§ãã ãµã€ã³ã€ã³ãŸãã¯ãã£ã¬ã¯ããªã®å€æŽã詊ãããšãã§ããŸãã
ãã®ããŒãžã«ã¢ã¯ã»ã¹ããã«ã¯ãæ¿èªãå¿ èŠã§ãã ãã£ã¬ã¯ããªã®å€æŽã詊ãããšãã§ããŸãã
ã¢ããªã .NET Framework ãã .NET Core ããŒãžã§ã³ 1.0 ãã 3.1 ã«ç§»è¡ããå Žåããã®èšäºã«èšèŒãããŠããç Žå£ç倿Žã圱é¿ãåããå¯èœæ§ããããŸãã ç Žå£ç倿Žã¯ãå°å ¥ããã .NET Core ã®ããŒãžã§ã³ã«ãã£ãŠãã«ããŽãªå¥ãããã³ã«ããŽãªå ã§ã°ã«ãŒãåãããŸãã
泚
ãã®èšäºã¯ã.NET Framework ãš .NET Core ã®éã®é倧ãªå€æŽã®å®å šãªäžèЧã§ã¯ãããŸããã æãéèŠãªé倧ãªã·ã¹ãã 倿Žã¯ããããæ¬¡ç¬¬ããã«è¿œå ãããŸãã
ã³ã¢ .NET ã©ã€ãã©ãª
- UseShellExecute ã®æ¢å®å€ã®å€æŽ
- IDispatchImplAttribute API ãåé€ãããŸãã
- FileSystemInfo.Attributes ã«ãã£ãŠã¹ããŒããã UnauthorizedAccessException
- ç Žæããã»ã¹ç¶æ äŸå€ã®åŠçã¯ãµããŒããããŠããŸãã
- UriBuilder ã®ããããã£ã§ã¯ä»åŸãå é ã«æåãä»å ãããªã
- Process.StartInfo ã¯ãéå§ããªãã£ãããã»ã¹ã«å¯Ÿã㊠InvalidOperationException ãã¹ããŒããŸã
.NET 8
IDispatchImplAttribute API ãåé€ãããŸãã
.NET Core 2.1
UseShellExecute ã®æ¢å®å€ã®å€æŽ
ProcessStartInfo.UseShellExecute ã®æ¢å®å€ã¯ .NET Core ã® false ã§ãã .NET Framework ã§ã¯ãæ¢å®å€ã¯ trueã
倿Žã®èª¬æ
Process.Start ã䜿çšãããšãããšãã° Paint ãèµ·åãã Process.Start("mspaint.exe") ãªã©ã®ã³ãŒãã䜿çšããŠãã¢ããªã±ãŒã·ã§ã³ãçŽæ¥èµ·åã§ããŸãã ãŸãã ProcessStartInfo.UseShellExecute ã trueã«èšå®ãããŠããå Žåã¯ãé¢é£ããã¢ããªã±ãŒã·ã§ã³ã鿥çã«èµ·åããããšãã§ããŸãã .NET Framework ã§ã¯ã ProcessStartInfo.UseShellExecute ã®æ¢å®å€ã¯ trueã§ããã€ãŸãã Process.Start("mytextfile.txt") ãªã©ã®ã³ãŒãã¯ããã®ãšãã£ã¿ãŒã«.txtãã¡ã€ã«ãé¢é£ä»ããå Žåã«ã¡ã¢åž³ ã èµ·åããŸãã .NET Framework ã§ã¢ããªã鿥çã«èµ·åããªãããã«ããã«ã¯ã ProcessStartInfo.UseShellExecute ãæç€ºçã« false ã«èšå®ããå¿
èŠããããŸãã .NET Core ã§ã¯ã ProcessStartInfo.UseShellExecute ã®æ¢å®å€ã¯ falseã ã€ãŸããæ¢å®ã§ã¯ã Process.StartãåŒã³åºããšãã«ãé¢é£ä»ããããŠããã¢ããªã±ãŒã·ã§ã³ã¯èµ·åãããŸããã
System.Diagnostics.ProcessStartInfoã®æ¬¡ã®ããããã£ã¯ãProcessStartInfo.UseShellExecuteãtrueãããŠããå Žåã«ã®ã¿æ©èœããŸãã
- ProcessStartInfo.CreateNoWindow
- ProcessStartInfo.ErrorDialog
- ProcessStartInfo.Verb
- ProcessStartInfo.WindowStyleã
ãã®å€æŽã¯ãããã©ãŒãã³ã¹äžã®çç±ãã .NET Core ã§å°å
¥ãããŸããã éåžžã Process.Start ã¯ã¢ããªã±ãŒã·ã§ã³ãçŽæ¥èµ·åããããã«äœ¿çšãããŸãã ã¢ããªãçŽæ¥èµ·åããå ŽåãWindows ã·ã§ã«ã䜿çšããå¿
èŠã¯ãªããããé¢é£ããããã©ãŒãã³ã¹ ã³ã¹ããçºçããŸãã ãã®æ¢å®ã®ã±ãŒã¹ãé«éåããããã«ã.NET Core ã§ã¯æ¢å®å€ã® ProcessStartInfo.UseShellExecute ã false ã«å€æŽãããŸãã å¿
èŠã«å¿ããŠãäœéãã¹ã«ãªããã€ã³ã§ããŸãã
å°å ¥ãããããŒãžã§ã³
2.1
泚
以åã®ããŒãžã§ã³ã® .NET Core ã§ã¯ã UseShellExecute 㯠Windows çšã«å®è£
ãããŠããŸããã§ããã
æšå¥šãããã¢ã¯ã·ã§ã³
ã¢ããªãå€ãåäœã«äŸåããŠããå Žåã¯ãProcess.Start(ProcessStartInfo)ãUseShellExecuteã§trueã«èšå®ããŠProcessStartInfo ãªããžã§ã¯ããåŒã³åºããŸãã
ã«ããŽãª
ã³ã¢ .NET ã©ã€ãã©ãª
圱é¿ãåãã API
.NET Core 1.0
FileSystemInfo.Attributes ã«ãã£ãŠã¹ããŒããã UnauthorizedAccessException
.NET Core ã§ã¯ãåŒã³åºãå ããã¡ã€ã«å±æ§å€ãèšå®ããããšããŠãæžã蟌ã¿ã¢ã¯ã»ã¹èš±å¯ããªãå ŽåãUnauthorizedAccessException ãã¹ããŒãããŸãã
倿Žã®èª¬æ
.NET Framework ã§ã¯ãåŒã³åºãå ã ArgumentException ã§ãã¡ã€ã«å±æ§å€ãèšå®ããããšããŠãæžã蟌ã¿ã¢ã¯ã»ã¹èš±å¯ããªãå ŽåãFileSystemInfo.Attributes ãã¹ããŒãããŸãã .NET Core ã§ã¯ã代ããã« UnauthorizedAccessException ãã¹ããŒãããŸã (.NET Core ã§ã¯ãåŒã³åºãå ãç¡å¹ãªãã¡ã€ã«å±æ§ãèšå®ããããšããå Žåã§ã ArgumentException ãã¹ããŒãããŸã)ã
å°å ¥ãããããŒãžã§ã³
1.0
æšå¥šãããã¢ã¯ã·ã§ã³
å¿
èŠã«å¿ããŠãcatchã®ä»£ããã«UnauthorizedAccessExceptionããã£ããããããã«ãArgumentExceptionã¹ããŒãã¡ã³ãã倿ŽããŸãã
ã«ããŽãª
ã³ã¢ .NET ã©ã€ãã©ãª
圱é¿ãåãã API
ç Žæããç¶æ ã®äŸå€ã®åŠçã¯ãµããŒããããŠããŸãã
.NET Core ã§ã®ç Žæããã»ã¹ç¶æ äŸå€ã®åŠçã¯ãµããŒããããŠããŸããã
倿Žã®èª¬æ
以åã¯ãC# ã§ try-catch ã¹ããŒãã¡ã³ãã䜿çšãããªã©ããããŒãžã ã³ãŒãã®äŸå€ãã³ãã©ãŒã«ãã£ãŠãç Žæããããã»ã¹ç¶æ ã®äŸå€ããã£ããããŠåŠçã§ããŸããã
.NET Core 1.0 以éã§ã¯ãç Žæããããã»ã¹ç¶æ ã®äŸå€ã¯ãããŒãžã ã³ãŒãã§ã¯åŠçã§ããŸããã å ±éèšèªã©ã³ã¿ã€ã ã¯ãç Žæããããã»ã¹ç¶æ ã®äŸå€ããããŒãžã ã³ãŒãã«æäŸããŸããã
å°å ¥ãããããŒãžã§ã³
1.0
æšå¥šãããã¢ã¯ã·ã§ã³
ç Žæããããã»ã¹ç¶æ ã®äŸå€ãåŠçããå¿ èŠãé¿ããããããåŒãèµ·ããç¶æ³ã«å¯ŸåŠããããšãæ€èšããŠãã ããã ç Žæããããã»ã¹ç¶æ ã®äŸå€ãåŠçããå¿ èŠãããå Žåã¯ãC ãŸã㯠C++ ã³ãŒãã§äŸå€ãã³ãã©ãŒãèšè¿°ããŸãã
ã«ããŽãª
ã³ã¢ .NET ã©ã€ãã©ãª
圱é¿ãåãã API
- System.Runtime.ExceptionServices.HandleProcessCorruptedStateExceptionsAttribute
- legacyCorruptedStateExceptionsPolicy èŠçŽ
UriBuilder ããããã£ã¯ãã¯ãå é æåã远å ããŸãã
UriBuilder.Fragment ã¯ãå
é # æåã®å
é ã«ä»å ãããªããªãã UriBuilder.Query ãæ¢ã«ååšããå Žåã¯å
é ? æåã®å
é ã«ä»å ãããªããªããŸãã
倿Žã®èª¬æ
.NET Framework ã§ã¯ã UriBuilder.Fragment ããããã£ãš UriBuilder.Query ããããã£ã¯ãåžžã«ãæ ŒçŽãããå€ã®å
é ã« # ãŸã㯠? æåãä»å ããŸãã ãã®åäœã«ãããæååã«ãããã®å
é æåã®ãããããæ¢ã«å«ãŸããŠããå Žåãæ ŒçŽãããå€ã«è€æ°ã® # ãŸã㯠? æåãå«ãŸããå¯èœæ§ããããŸãã ããšãã°ã UriBuilder.Fragment ã®å€ã ##mainã«ãªãå ŽåããããŸãã
.NET Core 1.0以éããããã®ããããã£ã¯ãæååã®å
é ã«#ãŸãã¯?æåãæ¢ã«ååšããŠããå Žåããããã远å ããªããªããŸããã
å°å ¥ãããããŒãžã§ã³
1.0
æšå¥šãããã¢ã¯ã·ã§ã³
ããããã£å€ãèšå®ãããšãã«ããããã®å
é æåãæç€ºçã«åé€ããå¿
èŠããªããªããŸããã ããã¯ãå€ã远å ãããšãã«ç¹ã«äŸ¿å©ã§ãã远å ãããã³ã«å
é ã® # ã ? ãåé€ããå¿
èŠããªããªã£ãããã§ãã
ããšãã°ã次ã®ã³ãŒã ã¹ããããã¯ã.NET Framework ãš .NET Core ã®åäœã®éãã瀺ããŠããŸãã
var builder = new UriBuilder();
builder.Query = "one=1";
builder.Query += "&two=2";
builder.Query += "&three=3";
builder.Query += "&four=4";
Console.WriteLine(builder.Query);
- .NET Framework ã§ã¯ãåºåã¯
????one=1&two=2&three=3&four=4ã - .NET Core ã§ã¯ãåºåã¯
?one=1&two=2&three=3&four=4ã
ã«ããŽãª
ã³ã¢ .NET ã©ã€ãã©ãª
圱é¿ãåãã API
Process.StartInfo ã¯ãéå§ããªãã£ãããã»ã¹ã«å¯Ÿã㊠InvalidOperationException ãã¹ããŒããŸã
ã³ãŒãã§éå§ãããªãã£ãããã»ã¹ã® Process.StartInfo ããããã£ã®èªã¿åãã«ãã£ãŠãInvalidOperationException ãã¹ããŒãããŸãã
倿Žã®èª¬æ
.NET Framework ã§ãã³ãŒããéå§ããªãã£ãããã»ã¹ã® Process.StartInfo ããããã£ã«ã¢ã¯ã»ã¹ãããšããããŒã® ProcessStartInfo ãªããžã§ã¯ããè¿ãããŸãã ãã㌠ãªããžã§ã¯ãã«ã¯ã EnvironmentVariablesãé€ããã¹ãŠã®ããããã£ã®æ¢å®å€ãå«ãŸããŠããŸãã
.NET Core 1.0 以éã§ã¯ãéå§ãããªãã£ã (Process.StartInfo ãåŒã³ãããªãã£ã) ããã»ã¹ã® Process.Start ããããã£ãèªã¿åããšãInvalidOperationException ãã¹ããŒãããŸãã
å°å ¥ãããããŒãžã§ã³
1.0
æšå¥šãããã¢ã¯ã·ã§ã³
ã³ãŒããéå§ãããªãã£ãããã»ã¹ã® Process.StartInfo ããããã£ã«ã¢ã¯ã»ã¹ããªãã§ãã ããã ããšãã°ã Process.GetProcessesã«ãã£ãŠè¿ãããããã»ã¹ã«ã€ããŠã¯ããã®ããããã£ãèªã¿åããªãã§ãã ããã
ã«ããŽãª
ã³ã¢ .NET ã©ã€ãã©ãª
圱é¿ãåãã API
æå·
.NET Core 2.1
SignedCms.ComputeSignature ã®ããŒã«å€ãã©ã¡ãŒã¿ãŒãåªå ãããŸã
.NET Core ã§ã¯ãsilent ã¡ãœããã®ããŒã«SignedCms.ComputeSignature(CmsSigner, Boolean) ãã©ã¡ãŒã¿ãŒãèæ
®ãããŸãã ãã®ãã©ã¡ãŒã¿ãŒã true ã«èšå®ãããŠããå ŽåãPIN ããã³ããã¯è¡šç€ºãããŸããã
倿Žã®èª¬æ
.NET Framework ã§ã¯ãsilent ã¡ãœããã®SignedCms.ComputeSignature(CmsSigner, Boolean) ãã©ã¡ãŒã¿ãŒã¯ç¡èŠããããããã€ããŒãå¿
èŠãšããå Žåã¯åžžã« PIN ããã³ããã衚瀺ãããŸãã .NET Core ã§ã¯ã silent ãã©ã¡ãŒã¿ãŒãåªå
ããã trueã«èšå®ãããŠããå Žåããããã€ããŒãå¿
èŠãšããå Žåã§ã PIN ããã³ããã¯è¡šç€ºãããŸããã
CMS/PKCS #7 ã¡ãã»ãŒãžã®ãµããŒãã¯ãããŒãžã§ã³ 2.1 ã§ .NET Core ã«å°å ¥ãããŸããã
å°å ¥ãããããŒãžã§ã³
2.1
æšå¥šãããã¢ã¯ã·ã§ã³
å¿
èŠã«å¿ã㊠PIN ããã³ããã衚瀺ãããããã«ããã«ã¯ããã¹ã¯ããã ã¢ããªã±ãŒã·ã§ã³ã§ SignedCms.ComputeSignature(CmsSigner, Boolean) ãåŒã³åºããBoolean ãã©ã¡ãŒã¿ãŒã false ã«èšå®ããå¿
èŠããããŸãã çµæã®åäœã¯ããµã€ã¬ã³ã ã³ã³ããã¹ããç¡å¹ã«ãªã£ãŠãããã©ããã«é¢ä¿ãªãã.NET Framework ã®å Žåãšåãã§ãã
ã«ããŽãª
æå·
圱é¿ãåãã API
MSBuild
.NET Core 3.0
ãªãœãŒã¹ ãããã§ã¹ãã®ãã¡ã€ã«åã®å€æŽ
.NET Core 3.0 以éã§ã¯ãæ¢å®ã®å ŽåãMSBuild ã«ãã£ãŠãªãœãŒã¹ ãã¡ã€ã«ã«å¯ŸããŠç°ãªããããã§ã¹ã ãã¡ã€ã«åãçæãããŸãã
å°å ¥ãããããŒãžã§ã³
3.0
倿Žã®èª¬æ
.NET Core 3.0 ããåã§ã¯ããããžã§ã¯ã ãã¡ã€ã«ã® LogicalName é
ç®ã« ManifestResourceNameãDependentUponããŸã㯠EmbeddedResource ã¡ã¿ããŒã¿ãæå®ãããªãã£ãå ŽåãMSBuild ã§ã¯ãã¿ãŒã³ <RootNamespace>.<ResourceFilePathFromProjectRoot>.resources ã§ãããã§ã¹ã ãã¡ã€ã«åãçæãããŠããŸããã
RootNamespace ããããžã§ã¯ã ãã¡ã€ã«ã§å®çŸ©ãããŠããªãå Žåã¯ãæ¢å®ã§ãã®ãããžã§ã¯ãã®ååã«ãªããŸãã ããšãã°ãã«ãŒã ãããžã§ã¯ã ãã£ã¬ã¯ããªå
ã® Form1 ãšããååã®ãªãœãŒã¹ ãã¡ã€ã«ã«å¯ŸããŠçæããããããã§ã¹ãåã¯ãMyProject.Form1.resources ã§ããã
.NET Core 3.0 以éã§ã¯ããããªãœãŒã¹ ãã¡ã€ã«ãåãååã®ãœãŒã¹ ãã¡ã€ã«ãšäœµçœ®ãããŠããå Žå (ããšãã°ãForm1.resx ãš Form1.cs)ãMSBuild ã§ã¯ãã®ãœãŒã¹ ãã¡ã€ã«ã®åæ
å ±ã䜿çšãããŠãã¿ãŒã³ <Namespace>.<ClassName>.resources ã§ãããã§ã¹ã ãã¡ã€ã«åãçæãããŸãã åå空éãšã¯ã©ã¹åã¯ã䜵眮ããããœãŒã¹ ãã¡ã€ã«ã®æåã®åããæœåºãããŸãã ããšãã°ãForm1.cs ãšããååã®ãœãŒã¹ ãã¡ã€ã«ãšäœµçœ®ãããŠãã Form1 ãšããååã®ãªãœãŒã¹ ãã¡ã€ã«ã«å¯ŸããŠçæããããããã§ã¹ãåã¯ãMyNamespace.Form1.resources ã«ãªããŸãã éèŠãªæ³šæç¹ãšããŠã.NET Core ã®ä»¥åã®ããŒãžã§ã³ãšã¯ãã¡ã€ã«åã®æåã®éšåãç°ãªããŸã (MyProject ã§ã¯ãªã MyNamespace)ã
泚
ãããžã§ã¯ã ãã¡ã€ã«ã® LogicalName é
ç®ã§ ManifestResourceNameãDependentUponããŸã㯠EmbeddedResource ã¡ã¿ããŒã¿ãæå®ãããŠããå Žåããã®å€æŽã¯ãã®ãªãœãŒã¹ ãã¡ã€ã«ã«ã¯åœ±é¿ããŸããã
ãã®ç Žå£ç倿Žã¯ã.NET Core ãããžã§ã¯ããžã® EmbeddedResourceUseDependentUponConvention ããããã£ã®è¿œå ã«ãã£ãŠå°å
¥ãããŸããã æ¢å®ã§ã¯ããªãœãŒã¹ ãã¡ã€ã«ã¯ .NET Core ãããžã§ã¯ã ãã¡ã€ã«ã«æç€ºçã«ãªã¹ããããŠããªããããçæããã DependentUpon ãã¡ã€ã«ã«ååãä»ããæ¹æ³ãæå®ããããã® ã¡ã¿ããŒã¿ã¯ãããŸããã
EmbeddedResourceUseDependentUponConvention ã true ã«èšå®ãããŠããå Žå (æ¢å®)ãMSBuild ã§ã¯äœµçœ®ããããœãŒã¹ ãã¡ã€ã«ãæ€çŽ¢ããããã®ãã¡ã€ã«ããåå空éãšã¯ã©ã¹åãæœåºãããŸãã
EmbeddedResourceUseDependentUponConvention ã false ã«èšå®ãããšãMSBuild ã§ã¯ RootNamespace ãšçžå¯Ÿãã¡ã€ã« ãã¹ãçµã¿åãããåã®åäœã«åŸã£ãŠãããã§ã¹ãåãçæãããŸãã
æšå¥šãããã¢ã¯ã·ã§ã³
ã»ãšãã©ã®å Žåãéçºè åŽã§ã¢ã¯ã·ã§ã³ãåãå¿ èŠã¯ãªããã¢ããªã¯åŒãç¶ãåäœããã¯ãã§ãã ãã ãããã®å€æŽã«ãã£ãŠã¢ããªã«åœ±é¿ãåºãŠããå Žåã¯ã次ã®ãããããå®è¡ããŠãã ããã
æ°ãããããã§ã¹ãåãèŠæ±ããããã«ã³ãŒãã倿Žããã
ãããžã§ã¯ã ãã¡ã€ã«ã§
EmbeddedResourceUseDependentUponConventionãfalseã«èšå®ããŠãæ°ããååä»ãèŠåãç¡å¹ã«ããã<PropertyGroup> <EmbeddedResourceUseDependentUponConvention>false</EmbeddedResourceUseDependentUponConvention> </PropertyGroup>
ã«ããŽãª
MSBuild
圱é¿ãåãã API
ãªã
ãããã¯ãŒãã³ã°
.NET Core 2.0
WebClient.CancelAsync ãåžžã«ããã«åãæ¶ãããããã§ã¯ãããŸãã
.NET Core 2.0 以éã§ã¯ãå¿çããã§ãããéå§ããå Žåã WebClient.CancelAsync() ãåŒã³åºããŠãèŠæ±ã¯ããã«ã¯åãæ¶ãããŸããã
倿Žã®èª¬æ
以åã¯ã WebClient.CancelAsync() åŒã³åºãã¯ããã«èŠæ±ãåãæ¶ããŸããã .NET Core 2.0 以éã§ã¯ã WebClient.CancelAsync() ãåŒã³åºããšãå¿çããã§ãããéå§ããŠããªãå Žåã«ã®ã¿ãèŠæ±ãçŽã¡ã«åãæ¶ãããŸãã å¿çããã§ãããéå§ããå ŽåãèŠæ±ã¯å®å šãªå¿çãèªã¿åãããåŸã«ã®ã¿åãæ¶ãããŸãã
ãã®å€æŽã¯ãWebClientãåªå ã㊠HttpClient API ãéæšå¥šã«ãªãããå®è£ ãããŸããã
å°å ¥ãããããŒãžã§ã³
2.0
æšå¥šãããã¢ã¯ã·ã§ã³
System.Net.Http.HttpClientã®ä»£ããã« System.Net.WebClient ã¯ã©ã¹ã䜿çšããŸããããã¯éæšå¥šã§ãã
ã«ããŽãª
ãããã¯ãŒãã³ã°
圱é¿ãåãã API
Windows ãã©ãŒã
Windows ãã©ãŒã ã®ãµããŒãã¯ãããŒãžã§ã³ 3.0 ã® .NET Core ã«è¿œå ãããŸããã Windows ãã©ãŒã ã¢ããªã .NET Framework ãã .NET Core ã«ç§»è¡ããå Žåãããã«èšèŒãããŠããç Žå£ç倿Žãã¢ããªã«åœ±é¿ããå¯èœæ§ããããŸãã
- åé€ãããã³ã³ãããŒã«
- ããŒã«ãããã衚瀺ãããŠããå ŽåãCellFormatting ã€ãã³ãã¯çºçããŸãã
- Control.DefaultFont ã Segoe UI 9 pt ã«å€æŽãããŸãã
- FolderBrowserDialog ã®ææ°å
- SerializableAttribute ãäžéšã® Windows ãã©ãŒã ã®çš®é¡ããåé€ãããŸãã
- AllowUpdateChildControlIndexForTabControls ã®äºææ§ã¹ã€ããã¯ãµããŒããããŠããŸãã
- DomainUpDown.UseLegacyScrolling äºææ§ã¹ã€ããã¯ãµããŒããããŠããŸãã
- DoNotLoadLatestRichEditControl äºææ§ã¹ã€ããããµããŒããããŠããŸãã
- DoNotSupportSelectAllShortcutInMultilineTextBox äºææ§ã¹ã€ããããµããŒããããŠããŸãã
- DontSupportReentrantFilterMessage äºææ§ã¹ã€ããããµããŒããããŠããŸãã
- EnableVisualStyleValidation äºææ§ã¹ã€ããã¯ãµããŒããããŠããŸãã
- UseLegacyContextMenuStripSourceControlValue äºææ§ã¹ã€ããã¯ãµããŒããããŠããŸãã
- UseLegacyImages äºææ§ã¹ã€ããã¯ãµããŒããããŠããŸãã
- Visual Basic ã® About ãã³ãã¬ãŒããš SplashScreen ãã³ãã¬ãŒããå£ããŠãã
- Microsoft.VisualBasic.ApplicationServices åå空éã®åã¯äœ¿çšã§ããŸãã
- Microsoft.VisualBasic.Devices åå空éã®åã¯äœ¿çšã§ããŸãã
- Microsoft.VisualBasic.MyServices åå空éã®åã¯äœ¿çšã§ããŸãã
.NET Core 3.1
åé€ãããã³ã³ãããŒã«
.NET Core 3.1 以éã§ã¯ãäžéšã® Windows ãã©ãŒã ã³ã³ãããŒã«ã¯äœ¿çšã§ããªããªããŸããã
倿Žã®èª¬æ
.NET Core 3.1 以éã§ã¯ãããŸããŸãª Windows ãã©ãŒã ã³ã³ãããŒã«ã¯äœ¿çšã§ããªããªããŸããã .NET Framework 2.0 ã§ã¯ãããåªããèšèšãšãµããŒããåãã代æ¿ã³ã³ãããŒã«ãå°å ¥ãããŸããã éæšå¥šã®ã³ã³ãããŒã«ã¯ã以åã¯ãã¶ã€ã㌠ããŒã«ããã¯ã¹ããåé€ãããŠããŸããããåŒãç¶ã䜿çšã§ããŸãã
次ã®çš®é¡ã¯äœ¿çšã§ããªããªããŸããã
- 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
å°å ¥ãããããŒãžã§ã³
3.1
æšå¥šãããã¢ã¯ã·ã§ã³
åé€ãããåã³ã³ãããŒã«ã«ã¯ãæšå¥šããã眮æã³ã³ãããŒã«ããããŸãã æ¬¡ã®è¡šãåç §ããŠãã ããã
| åé€ãããã³ã³ãããŒã« (API) | æšå¥šããã眮æ | åé€ãããé¢é£ API |
|---|---|---|
| ã³ã³ããã¹ãã¡ãã¥ãŒ | ContextMenuStrip | |
| DataGrid | DataGridViewïŒããŒã¿ã°ãªãããã¥ãŒïŒ | DataGridCellãDataGridRowãDataGridTableCollectionãDataGridColumnCollectionãDataGridTableStyleãDataGridColumnStyleãDataGridLineStyleãDataGridParentRowsLabelãDataGridParentRowsLabelStyleãDataGridBoolColumnãDataGridTextBoxãGridColumnStylesCollectionãGridTableStylesCollectionãHitTestType |
| MainMenu | MenuStrip | |
| ã¡ãã¥ãŒ | ToolStripDropDownãToolStripDropDownMenu | ã¡ãã¥ãŒã¢ã€ãã ã³ã¬ã¯ã·ã§ã³ |
| ã¡ãã¥ãŒé ç® | ToolStripMenuItem | |
| ããŒã«ã㌠| ããŒã«ã¹ããªãã | ããŒã«ããŒã®å€èг |
| ããŒã«ããŒãã¿ã³ | ããŒã«ã¹ããªãããã¿ã³ | ToolBarButtonClickEventArgsãToolBarButtonClickEventHandlerãToolBarButtonStyleãToolBarTextAlign |
ã«ããŽãª
Windows ãã©ãŒã
圱é¿ãåãã 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
ããŒã«ãããã衚瀺ãããŠããå ŽåãCellFormatting ã€ãã³ããçºçããªã
ããŠã¹ã§ãã€ã³ããããšããšãããŒããŒãã§éžæãããšãã«ãDataGridView ã«ã»ã«ã®ããã¹ããšãšã©ãŒã®ãã³ãã衚瀺ãããããã«ãªããŸããã ããŒã«ãã³ãã衚瀺ãããŠããå Žåã DataGridView.CellFormatting ã€ãã³ãã¯çºçããŸããã
倿Žã®èª¬æ
.NET Core 3.1 ããåã®ããŒãžã§ã³ã§ã¯ãDataGridView ããããã£ã ShowCellToolTips ã«èšå®ãããtrueã¯ãã»ã«ã®ããã¹ããšãšã©ãŒã«é¢ããŠãããŠã¹ã§ã»ã«ããããŒãããšãã«ããŒã«ãããã衚瀺ãããŠããŸããã ããŒããŒãã䜿çšããŠã»ã«ãéžæãããšãã«ãã³ãã衚瀺ãããŸããã§ãã (ããšãã°ãTab ããŒãã·ã§ãŒãã«ãã ããŒãç¢å°ããã²ãŒã·ã§ã³ã䜿çš)ã ãŠãŒã¶ãŒãã»ã«ãç·šéãã DataGridView ããŸã ç·šéã¢ãŒãã®éã«ã ToolTipText ããããã£ãèšå®ãããŠããªãã»ã«ã®äžã«ããŠã¹ ãã€ã³ã¿ãŒã眮ããå Žåãã»ã«ã«è¡šç€ºããã»ã«ã®ããã¹ããæžåŒèšå®ããããã« CellFormatting ã€ãã³ããçºçããŸããã
ã¢ã¯ã»ã·ããªãã£æšæºãæºããããã«ã.NET Core 3.1 以éã§ã¯ãDataGridView ããããã£ã ShowCellToolTips ã«èšå®ãããtrueã«ã¯ãã»ã«ã®ããã¹ãã®ãã³ããšãã»ã«ããããŒããããšãã ãã§ãªããããŒããŒãã§éžæããããšãã®ãšã©ãŒã衚瀺ãããŸãã ãã®å€æŽã®çµæãCellFormatting ãç·šéã¢ãŒãã®ãšãã«ã ããããã£ãèšå®ãããŠããªãã»ã«ã«ããŠã¹ãã€ã³ã¿ãŒãåãããŠããToolTipText ã€ãã³ãã¯çºçDataGridViewã ãããŒãããã»ã«ã®å
容ãã»ã«ã§ã¯ãªãããŒã«ããããšããŠè¡šç€ºããããããã€ãã³ãã¯ããªã¬ãŒãããŸããã
å°å ¥ãããããŒãžã§ã³
3.1
æšå¥šãããã¢ã¯ã·ã§ã³
CellFormattingãç·šéã¢ãŒãã®éãDataGridView ã€ãã³ãã«äŸåãããã¹ãŠã®ã³ãŒãããªãã¡ã¯ã¿ãªã³ã°ããŸãã
ã«ããŽãª
Windows ãã©ãŒã
圱é¿ãåãã API
ç¡ã
.NET Core 3.0
æ¢å®ã®ã³ã³ãããŒã« ãã©ã³ãã Segoe UI 9 pt ã«å€æŽãããŸãã
倿Žã®èª¬æ
.NET Framework ã§ã¯ã Control.DefaultFont ããããã£ã¯ Microsoft Sans Serif 8.25 pt ã«èšå®ãããŸããã æ¬¡ã®å³ã¯ãæ¢å®ã®ãã©ã³ãã䜿çšãããŠã£ã³ããŠã瀺ããŠããŸãã
.NET Core 3.0 以éã§ã¯ãæ¢å®ã®ãã©ã³ã㯠Segoe UI 9 pt ( SystemFonts.MessageBoxFont ãšåããã©ã³ã) ã«èšå®ãããŠããŸãã ãã®å€æŽã®çµæããã©ãŒã ãšã³ã³ãããŒã«ã®ãµã€ãºã¯ãæ°ããæ¢å®ã®ãã©ã³ãã®ãµã€ãºãèæ
®ããŠçŽ 27% 倧ãããªããŸãã äŸãã°æ¬¡ãæããããŸãã
ãã®å€æŽã¯ã Windows ãŠãŒã¶ãŒ ãšã¯ã¹ããªãšã³ã¹ (UX) ã®ã¬ã€ãã©ã€ã³ã«åãããŠè¡ãããŸããã
å°å ¥ãããããŒãžã§ã³
3.0
æšå¥šãããã¢ã¯ã·ã§ã³
ãã©ãŒã ãšã³ã³ãããŒã«ã®ãµã€ãºã倿Žããããããã¢ããªã±ãŒã·ã§ã³ãæ£ããã¬ã³ããªã³ã°ãããããã«ããŸãã
1 ã€ã®ãã©ãŒã ã®å
ã®ãã©ã³ããä¿æããã«ã¯ãæ¢å®ã®ãã©ã³ãã Microsoft Sans Serif 8.25 ptã«èšå®ããŸãã äŸãã°æ¬¡ãæããããŸãã
public MyForm()
{
InitializeComponent();
Font = new Font(new FontFamily("Microsoft Sans Serif"), 8.25f);
}
ãŸãã¯ã次ã®ããããã®æ¹æ³ã§ãã¢ããªã±ãŒã·ã§ã³å šäœã®æ¢å®ã®ãã©ã³ãã倿Žã§ããŸãã
ApplicationDefaultFontMSBuild ããããã£ã "Microsoft Sans Serif, 8.25pt" ã«èšå®ããŸãã ããã¯ãVisual Studio ã§ãã¶ã€ããŒã§æ°ããèšå®ã䜿çšã§ãããããæšå¥šãããææ³ã§ãã<PropertyGroup> <ApplicationDefaultFont>Microsoft Sans Serif, 8.25pt</ApplicationDefaultFont> </PropertyGroup>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()); } }
ã«ããŽãª
- Windows ãã©ãŒã
圱é¿ãåãã API
ãªãã
FolderBrowserDialog ã®ææ°å
FolderBrowserDialog ã³ã³ãããŒã«ã¯ã.NET Core çšã® Windows ãã©ãŒã ã¢ããªã±ãŒã·ã§ã³ã§å€æŽãããŸããã
倿Žã®èª¬æ
.NET Framework ã® Windows ãã©ãŒã ã§ã¯ã FolderBrowserDialog ã³ã³ãããŒã«ã«å¯ŸããŠæ¬¡ã®ãã€ã¢ãã°ã䜿çšãããŸãã
.NET Core 3.0 ã§ã¯ãWindows ãã©ãŒã 㯠Windows Vista ã§å°å ¥ãããæ°ãã COM ããŒã¹ã®ã³ã³ãããŒã«ã䜿çšããŸãã
å°å ¥ãããããŒãžã§ã³
3.0
æšå¥šãããã¢ã¯ã·ã§ã³
ãã€ã¢ãã°ã¯èªåçã«ã¢ããã°ã¬ãŒããããŸãã
å
ã®ãã€ã¢ãã°ãä¿æããå Žåã¯ã次ã®ã³ãŒã ãã©ã°ã¡ã³ãã«ç€ºãããã«ããã€ã¢ãã°ã衚瀺ããåã«ã FolderBrowserDialog.AutoUpgradeEnabled ããããã£ã false ã«èšå®ããŸãã
var dialog = new FolderBrowserDialog();
dialog.AutoUpgradeEnabled = false;
dialog.ShowDialog();
ã«ããŽãª
Windows ãã©ãŒã
圱é¿ãåãã API
SerializableAttribute ãäžéšã® Windows ãã©ãŒã ã®çš®é¡ããåé€ãããŸãã
SerializableAttributeã¯ãæ¢ç¥ã®ãã€ã㪠ã·ãªã¢ã«åã·ããªãªããªãäžéšã® Windows ãã©ãŒã ã¯ã©ã¹ããåé€ãããŸããã
倿Žã®èª¬æ
次ã®åã¯ã.NET Framework ã® SerializableAttribute ã§ä¿®é£ŸãããŠããŸããã.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.ResXNullRefSystem.Resources.ResXDataNodeSystem.Resources.ResXFileRef- System.Windows.Forms.Cursor
System.Windows.Forms.NativeMethods.MSOCRINFOSTRUCTSystem.Windows.Forms.NativeMethods.MSG
ãããŸã§ããã®ã·ãªã¢ã«åã¡ã«ããºã ã«ã¯é倧ãªã¡ã³ããã³ã¹ãšã»ãã¥ãªãã£ã®åé¡ããããŸããã åã« SerializableAttribute ãç¶æããããšã¯ãããŒãžã§ã³éã®ã·ãªã¢ã«åã®å€æŽãšãã¬ãŒã ã¯ãŒã¯éã®ã·ãªã¢ã«åã®å€æŽã«ã€ããŠããããã®åããã¹ãããå¿
èŠããããŸãã ããã«ããããããã®åãé²åãããã®ãé£ãããªããã¡ã³ããã³ã¹ã«ãããã³ã¹ããé«ããªãå¯èœæ§ããããŸãã ãããã®åã«ã¯ã屿§ã®åé€ã«ãã圱é¿ãæå°éã«æããæ¢ç¥ã®ãã€ã㪠ã·ãªã¢ã«åã·ããªãªã¯ãããŸããã
詳现ã«ã€ããŠã¯ãã ãã€ããªã·ãªã¢ã«åããåç §ããŠãã ããã
å°å ¥ãããããŒãžã§ã³
3.0
æšå¥šãããã¢ã¯ã·ã§ã³
ã·ãªã¢ã«åå¯èœãšããŠããŒã¯ãããŠãããããã®åã«äŸåããå¯èœæ§ãããã³ãŒããæŽæ°ããŸãã
ã«ããŽãª
Windows ãã©ãŒã
圱é¿ãåãã API
- ç¡ã
AllowUpdateChildControlIndexForTabControls äºææ§ã¹ã€ããã¯ãµããŒããããŠããŸãã
Switch.System.Windows.Forms.AllowUpdateChildControlIndexForTabControlsäºææ§ã¹ã€ããã¯ã.NET Framework 4.6 以éã®ããŒãžã§ã³ã® Windows ãã©ãŒã ã§ã¯ãµããŒããããŠããŸããã.NET Core ãŸã㯠.NET 5.0 以éã§ã¯ãµããŒããããŠããŸããã
倿Žã®èª¬æ
.NET Framework 4.6 以éã®ããŒãžã§ã³ã§ã¯ãã¿ããéžæãããšã³ã³ãããŒã« ã³ã¬ã¯ã·ã§ã³ã®é åºã倿ŽãããŸãã
Switch.System.Windows.Forms.AllowUpdateChildControlIndexForTabControlsäºææ§ã¹ã€ããã䜿çšãããšããã®åäœãæãŸãããªãå Žåã«ãã¢ããªã±ãŒã·ã§ã³ã§ãã®äžŠã¹æ¿ããã¹ãããã§ããŸãã
.NET Core ããã³ .NET 5.0 以éã§ã¯ã Switch.System.Windows.Forms.AllowUpdateChildControlIndexForTabControls ã¹ã€ããã¯ãµããŒããããŠããŸããã
å°å ¥ãããããŒãžã§ã³
3.0
æšå¥šãããã¢ã¯ã·ã§ã³
ã¹ã€ãããåãå€ããŸãã ã¹ã€ããã¯ãµããŒããããŠããããä»£æ¿æ©èœã¯äœ¿çšã§ããŸããã
ã«ããŽãª
Windows ãã©ãŒã
圱é¿ãåãã API
- ç¡ã
DomainUpDown.UseLegacyScrolling äºææ§ã¹ã€ããã¯ãµããŒããããŠããŸãã
.NET Framework 4.7.1 ã§å°å
¥ããã Switch.System.Windows.Forms.DomainUpDown.UseLegacyScrolling äºææ§ã¹ã€ããã¯ã.NET Core ãŸã㯠.NET 5.0 以éã® Windows ãã©ãŒã ã§ã¯ãµããŒããããŠããŸããã
倿Žã®èª¬æ
.NET Framework 4.7.1 以éã Switch.System.Windows.Forms.DomainUpDown.UseLegacyScrolling äºææ§ã¹ã€ããã䜿çšãããšãéçºè
ã¯ç¬ç«ãã DomainUpDown.DownButton() ããã³ DomainUpDown.UpButton() ã¢ã¯ã·ã§ã³ããªããã¢ãŠãã§ããŸãã ã¹ã€ããã¯åŸæ¥ã®åäœã埩å
ããŸãããã³ã³ããã¹ã ããã¹ããååšããå ŽåãDomainUpDown.UpButton()ã¯ç¡èŠãããéçºè
㯠DomainUpDown.DownButton() ã¢ã¯ã·ã§ã³ã®åã«ã³ã³ãããŒã«DomainUpDown.UpButton()ã¢ã¯ã·ã§ã³ã䜿çšããå¿
èŠããããŸãã 詳现ã«ã€ããŠã¯ãã <AppContextSwitchOverrides> èŠçŽ ããåç
§ããŠãã ããã
.NET Core ããã³ .NET 5.0 以éã§ã¯ã Switch.System.Windows.Forms.DomainUpDown.UseLegacyScrolling ã¹ã€ããã¯ãµããŒããããŠããŸããã
å°å ¥ãããããŒãžã§ã³
3.0
æšå¥šãããã¢ã¯ã·ã§ã³
ã¹ã€ãããåãå€ããŸãã ã¹ã€ããã¯ãµããŒããããŠããããä»£æ¿æ©èœã¯äœ¿çšã§ããŸããã
ã«ããŽãª
Windows ãã©ãŒã
圱é¿ãåãã API
DoNotLoadLatestRichEditControl äºææ§ã¹ã€ããããµããŒããããŠããŸãã
.NET Framework 4.7.1 ã§å°å
¥ããã Switch.System.Windows.Forms.UseLegacyImages äºææ§ã¹ã€ããã¯ã.NET Core ãŸã㯠.NET 5.0 以éã® Windows ãã©ãŒã ã§ã¯ãµããŒããããŠããŸããã
倿Žã®èª¬æ
.NET Framework 4.6.2 以åã®ããŒãžã§ã³ã§ã¯ã RichTextBox ã³ã³ãããŒã«ã¯ Win32 RichEdit ã³ã³ãããŒã« v3.0 ãã€ã³ã¹ã¿ã³ã¹åãã.NET Framework 4.7.1 ãã¿ãŒã²ãããšããã¢ããªã±ãŒã·ã§ã³ã®å Žåã RichTextBox ã³ã³ãããŒã«ã¯ RichEdit v4.1 ãã€ã³ã¹ã¿ã³ã¹åããŸã ( msftedit.dll)ã
Switch.System.Windows.Forms.DoNotLoadLatestRichEditControläºææ§ã¹ã€ãããå°å
¥ããã.NET Framework 4.7.1 以éã®ããŒãžã§ã³ã察象ãšããã¢ããªã±ãŒã·ã§ã³ãæ°ãã RichEdit v4.1 ã³ã³ãããŒã«ããªããã¢ãŠããã代ããã«å€ã RichEdit v3 ã³ã³ãããŒã«ã䜿çšã§ããããã«ãªããŸããã
.NET Core ããã³ .NET 5.0 以éã®ããŒãžã§ã³ã§ã¯ã Switch.System.Windows.Forms.DoNotLoadLatestRichEditControl ã¹ã€ããã¯ãµããŒããããŠããŸããã
RichTextBox ã³ã³ãããŒã«ã®æ°ããããŒãžã§ã³ã®ã¿ããµããŒããããŸãã
å°å ¥ãããããŒãžã§ã³
3.0
æšå¥šãããã¢ã¯ã·ã§ã³
ã¹ã€ãããåãå€ããŸãã ã¹ã€ããã¯ãµããŒããããŠããããä»£æ¿æ©èœã¯äœ¿çšã§ããŸããã
ã«ããŽãª
Windows ãã©ãŒã
圱é¿ãåãã API
DoNotSupportSelectAllShortcutInMultilineTextBox äºææ§ã¹ã€ããã¯ãµããŒããããŠããŸãã
.NET Framework 4.6.1 ã§å°å
¥ããã Switch.System.Windows.Forms.DoNotSupportSelectAllShortcutInMultilineTextBox äºææ§ã¹ã€ããã¯ã.NET Core ããã³ .NET 5.0 以éã® Windows ãã©ãŒã ã§ã¯ãµããŒããããŠããŸããã
倿Žã®èª¬æ
.NET Framework 4.6.1 以éã ã³ã³ãããŒã«ã§ + TextBox ã·ã§ãŒãã«ãã ããŒãéžæãããšããã¹ãŠã®ããã¹ããéžæãããŸããã .NET Framework 4.6 以åã®ããŒãžã§ã³ã§ã¯ã + ããããã£ãš ããããã£ã®äž¡æ¹ãã«èšå®ãããŠããå ŽåãTextBox.MultilinetrueA ã·ã§ãŒãã«ãã ããŒãéžæãããšããã¹ãŠã®ããã¹ããéžæã§ããŸããã§ããã
Switch.System.Windows.Forms.DoNotSupportSelectAllShortcutInMultilineTextBoxäºææ§ã¹ã€ããã¯ãå
ã®åäœãä¿æããããã« .NET Framework 4.6.1 ã§å°å
¥ãããŸããã 詳现ã«ã€ããŠã¯ãTextBox.ProcessCmdKeyãåç
§ããŠãã ããã
.NET Core ããã³ .NET 5.0 以éã®ããŒãžã§ã³ã§ã¯ã Switch.System.Windows.Forms.DoNotSupportSelectAllShortcutInMultilineTextBox ã¹ã€ããã¯ãµããŒããããŠããŸããã
å°å ¥ãããããŒãžã§ã³
3.0
æšå¥šãããã¢ã¯ã·ã§ã³
ã¹ã€ãããåãå€ããŸãã ã¹ã€ããã¯ãµããŒããããŠããããä»£æ¿æ©èœã¯äœ¿çšã§ããŸããã
ã«ããŽãª
Windows ãã©ãŒã
圱é¿ãåãã API
- ç¡ã
DontSupportReentrantFilterMessage äºææ§ã¹ã€ããããµããŒããããŠããŸãã
.NET Framework 4.6.1 ã§å°å
¥ããã Switch.System.Windows.Forms.DontSupportReentrantFilterMessage äºææ§ã¹ã€ããã¯ã.NET Core ããã³ .NET 5.0 以éã® Windows ãã©ãŒã ã§ã¯ãµããŒããããŠããŸããã
倿Žã®èª¬æ
.NET Framework 4.6.1 以éã§ã¯ãSwitch.System.Windows.Forms.DontSupportReentrantFilterMessageäºææ§ã¹ã€ããã¯ãIndexOutOfRangeException ã¡ãã»ãŒãžãã«ã¹ã¿ã Application.FilterMessageå®è£
ã§åŒã³åºããããšãã«çºçããå¯èœæ§ã®ããIMessageFilter.PreFilterMessageäŸå€ã«å¯ŸåŠããŸãã 詳现ã«ã€ããŠã¯ãã 軜æžç: ã«ã¹ã¿ã IMessageFilter.PreFilterMessage ã®å®è£
ããåç
§ããŠãã ããã
.NET Core ããã³ .NET 5.0 以éã§ã¯ã Switch.System.Windows.Forms.DontSupportReentrantFilterMessage ã¹ã€ããã¯ãµããŒããããŠããŸããã
å°å ¥ãããããŒãžã§ã³
3.0
æšå¥šãããã¢ã¯ã·ã§ã³
ã¹ã€ãããåãå€ããŸãã ã¹ã€ããã¯ãµããŒããããŠããããä»£æ¿æ©èœã¯äœ¿çšã§ããŸããã
ã«ããŽãª
Windows ãã©ãŒã
圱é¿ãåãã API
EnableVisualStyleValidation äºææ§ã¹ã€ããã¯ãµããŒããããŠããŸãã
Switch.System.Windows.Forms.EnableVisualStyleValidationäºææ§ã¹ã€ããã¯ã.NET Core ãŸã㯠.NET 5.0 以éã® Windows ãã©ãŒã ã§ã¯ãµããŒããããŠããŸããã
倿Žã®èª¬æ
.NET Framework ã§ã¯ã Switch.System.Windows.Forms.EnableVisualStyleValidation äºææ§ã¹ã€ããã䜿çšãããšãã¢ããªã±ãŒã·ã§ã³ã¯æ°å€åœ¢åŒã§æå®ãããããžã¥ã¢ã« ã¹ã¿ã€ã«ã®æ€èšŒããªããã¢ãŠãã§ããŸãã
.NET Core ããã³ .NET 5.0 以éã§ã¯ã Switch.System.Windows.Forms.EnableVisualStyleValidation ã¹ã€ããã¯ãµããŒããããŠããŸããã
å°å ¥ãããããŒãžã§ã³
3.0
æšå¥šãããã¢ã¯ã·ã§ã³
ã¹ã€ãããåãå€ããŸãã ã¹ã€ããã¯ãµããŒããããŠããããä»£æ¿æ©èœã¯äœ¿çšã§ããŸããã
ã«ããŽãª
Windows ãã©ãŒã
圱é¿ãåãã API
- ç¡ã
UseLegacyContextMenuStripSourceControlValue äºææ§ã¹ã€ããã¯ãµããŒããããŠããŸãã
.NET Framework 4.7.2 ã§å°å
¥ããã Switch.System.Windows.Forms.UseLegacyContextMenuStripSourceControlValue äºææ§ã¹ã€ããã¯ã.NET Core ãŸã㯠.NET 5.0 以éã® Windows ãã©ãŒã ã§ã¯ãµããŒããããŠããŸããã
倿Žã®èª¬æ
.NET Framework 4.7.2 以éã§ã¯ã Switch.System.Windows.Forms.UseLegacyContextMenuStripSourceControlValue äºææ§ã¹ã€ããã䜿çšãããšãéçºè
㯠ContextMenuStrip.SourceControl ããããã£ã®æ°ããåäœããªããã¢ãŠãã§ããŸããããã«ããããœãŒã¹ç®¡çãžã®åç
§ãè¿ãããããã«ãªããŸããã ããããã£ã®ä»¥åã®åäœã¯ã nullãè¿ããã®ã§ããã 詳现ã«ã€ããŠã¯ãã <AppContextSwitchOverrides> èŠçŽ ããåç
§ããŠãã ããã
.NET Core ããã³ .NET 5.0 以éã§ã¯ã Switch.System.Windows.Forms.UseLegacyContextMenuStripSourceControlValue ã¹ã€ããã¯ãµããŒããããŠããŸããã
å°å ¥ãããããŒãžã§ã³
3.0
æšå¥šãããã¢ã¯ã·ã§ã³
ã¹ã€ãããåãå€ããŸãã ã¹ã€ããã¯ãµããŒããããŠããããä»£æ¿æ©èœã¯äœ¿çšã§ããŸããã
ã«ããŽãª
Windows ãã©ãŒã
圱é¿ãåãã API
UseLegacyImages äºææ§ã¹ã€ããã¯ãµããŒããããŠããŸãã
.NET Framework 4.8 ã§å°å
¥ããã Switch.System.Windows.Forms.UseLegacyImages äºææ§ã¹ã€ããã¯ã.NET Core ãŸã㯠.NET 5.0 以éã® Windows ãã©ãŒã ã§ã¯ãµããŒããããŠããŸããã
倿Žã®èª¬æ
.NET Framework 4.8 以éã Switch.System.Windows.Forms.UseLegacyImages äºææ§ã¹ã€ããã¯ãé« DPI ç°å¢ã§ã® ClickOnce ã·ããªãªã§çºçããå¯èœæ§ã®ããç»åã¹ã±ãŒãªã³ã°ã®åé¡ã«å¯ŸåŠããŸããã
trueã«èšå®ãããšããã®ã¹ã€ããã䜿çšãããšãã¹ã±ãŒã«ã 100%ãè¶
ããã¹ã±ãŒã«ã«èšå®ãããŠããé« DPI ãã£ã¹ãã¬ã€ã§åŸæ¥ã®ã€ã¡ãŒãž ã¹ã±ãŒãªã³ã°ã埩å
ã§ããŸãã 詳现ã«ã€ããŠã¯ãGitHub ã® .NET Framework 4.8 ãªãªãŒã¹ ããŒã ãåç
§ããŠãã ããã
.NET Core ããã³ .NET 5.0 以éã§ã¯ã Switch.System.Windows.Forms.UseLegacyImages ã¹ã€ããã¯ãµããŒããããŠããŸããã
å°å ¥ãããããŒãžã§ã³
3.0
æšå¥šãããã¢ã¯ã·ã§ã³
ã¹ã€ãããåãå€ããŸãã ã¹ã€ããã¯ãµããŒããããŠããããä»£æ¿æ©èœã¯äœ¿çšã§ããŸããã
ã«ããŽãª
Windows ãã©ãŒã
圱é¿ãåãã API
- ç¡ã
ãã¢ããŠããã³ãã¬ãŒããšã¹ãã©ãã·ã¥ã¹ã¯ãªãŒã³ãã³ãã¬ãŒããå£ããŠããã
Visual Studio ã«ãã£ãŠçæããã About.vb ãã¡ã€ã«ãš SplashScreen.vb ãã¡ã€ã«ã«ã¯ã.NET Core 3.0 ããã³ 3.1 ã§ã¯äœ¿çšã§ããªã My åå空éå
ã®åãžã®åç
§ãå«ãŸããŠããŸãã
å°å ¥ãããããŒãžã§ã³
3.0
倿Žã®èª¬æ
.NET Core 3.0 ããã³ 3.1 ã«ã¯ãVisual Basic My ã®å®å
šãªãµããŒãã¯å«ãŸããŸããã Visual Studio for Visual Basic Windows ãã©ãŒã ã¢ããªã® About ãã©ãŒã ãã³ãã¬ãŒããš SplashScreen ãã©ãŒã ãã³ãã¬ãŒãã¯ã䜿çšã§ããªã My.Application.Info åã®ããããã£ãåç
§ããŸãã
æšå¥šãããã¢ã¯ã·ã§ã³
Visual Basic My ã®ãµããŒãã .NET 5 ã§æ¹åããããããžã§ã¯ãã .NET 5 以éã«ã¢ããã°ã¬ãŒããããŸããã
-åã¯-
ã¢ããªã® About åãš SplashScreen åã®ã³ã³ãã€ã© ãšã©ãŒãä¿®æ£ããŸãã
System.Reflection.Assembly ã¯ã©ã¹ã䜿çšããŠãMy.Application.Infoåã«ãã£ãŠæäŸãããæ
å ±ãååŸããŸãã äž¡æ¹ã®åœ¢æ
ã®ã¹ãã¬ãŒãããŒãã¯ããã§å©çšå¯èœã§ãã
ãã³ã
ããã¯ãµã³ãã« ã³ãŒãã§ãããæé©åãããŸããã ãã©ãŒã ã®èªã¿èŸŒã¿æéãççž®ããããã«ã屿§ã®äžèЧããã£ãã·ã¥ããå¿ èŠããããŸãã
æŠèŠ
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
ã«ããŽãª
Visual Basic Windows ãã©ãŒã
圱é¿ãåãã API
ç¡ã
Microsoft.VisualBasic.ApplicationServices åå空éã®åã¯äœ¿çšã§ããŸãã
Microsoft.VisualBasic.ApplicationServicesåå空éã®åã¯äœ¿çšã§ããŸããã
å°å ¥ãããããŒãžã§ã³
.NET Core 3.0
倿Žã®èª¬æ
Microsoft.VisualBasic.ApplicationServicesåå空éã®åã¯ã.NET Framework ã§äœ¿çšã§ããŸããã .NET Core 3.0 - 3.1 ã§ã¯äœ¿çšã§ããŸããã
äžèŠãªã¢ã»ã³ããªäŸåé¢ä¿ãåŸç¶ã®ãªãªãŒã¹ã§ã®ç Žå£ç倿Žãåé¿ããããã«ãåãåé€ãããŸããã
æšå¥šãããã¢ã¯ã·ã§ã³
ãã®åå空é㯠.NET 5 ã§è¿œå ãããŸããããããžã§ã¯ãã .NET 5 以éã«ã¢ããã°ã¬ãŒãããŸãã
-åã¯-
ã³ãŒãã Microsoft.VisualBasic.ApplicationServices åãšãã®ã¡ã³ããŒã®äœ¿çšã«äŸåããŠããå Žåã¯ã.NET ã¯ã©ã¹ ã©ã€ãã©ãªã§å¯Ÿå¿ããåãŸãã¯ã¡ã³ããŒã䜿çšã§ããå ŽåããããŸãã ããšãã°ãäžéšã® System.Environment ã¡ã³ããŒãš System.Security.Principal.WindowsIdentity ã¡ã³ããŒã¯ã Microsoft.VisualBasic.ApplicationServices.User ã¯ã©ã¹ã®ããããã£ãšåçã®æ©èœãæäŸããŸãã
ã«ããŽãª
Visual Basic
圱é¿ãåãã API
Microsoft.VisualBasic.Devices åå空éã®åã¯äœ¿çšã§ããŸãã
Microsoft.VisualBasic.Devicesåå空éã®åã¯äœ¿çšã§ããŸããã
å°å ¥ãããããŒãžã§ã³
.NET Core 3.0
倿Žã®èª¬æ
Microsoft.VisualBasic.Devicesåå空éã®åã¯ã.NET Framework ã§äœ¿çšã§ããŸããã .NET Core 3.0 - 3.1 ã§ã¯äœ¿çšã§ããŸããã
äžèŠãªã¢ã»ã³ããªäŸåé¢ä¿ãåŸç¶ã®ãªãªãŒã¹ã§ã®ç Žå£ç倿Žãåé¿ããããã«ãåãåé€ãããŸããã
æšå¥šãããã¢ã¯ã·ã§ã³
ãã®åå空é㯠.NET 5 ã§è¿œå ãããŸããããããžã§ã¯ãã .NET 5 以éã«ã¢ããã°ã¬ãŒãããŸãã
-åã¯-
ã³ãŒãã Microsoft.VisualBasic.Devices åãšãã®ã¡ã³ããŒã®äœ¿çšã«äŸåããŠããå Žåã¯ã.NET ã¯ã©ã¹ ã©ã€ãã©ãªã§å¯Ÿå¿ããåãŸãã¯ã¡ã³ããŒã䜿çšã§ããå ŽåããããŸãã ããšãã°ã Microsoft.VisualBasic.Devices.Clock ã¯ã©ã¹ãšåçã®æ©èœã¯ System.DateTime åãš System.Environment åã«ãã£ãŠæäŸããã Microsoft.VisualBasic.Devices.Ports ã¯ã©ã¹ãšåçã®æ©èœã¯ System.IO.Ports åå空éã®åã«ãã£ãŠæäŸãããŸãã
ã«ããŽãª
Visual Basic
圱é¿ãåãã API
Microsoft.VisualBasic.MyServices åå空éã®åã¯äœ¿çšã§ããŸãã
Microsoft.VisualBasic.MyServicesåå空éã®åã¯äœ¿çšã§ããŸããã
å°å ¥ãããããŒãžã§ã³
.NET Core 3.0
倿Žã®èª¬æ
Microsoft.VisualBasic.MyServicesåå空éã®åã¯ã.NET Framework ã§äœ¿çšã§ããŸããã .NET Core 3.0 - 3.1 ã§ã¯äœ¿çšã§ããŸããã
äžèŠãªã¢ã»ã³ããªäŸåé¢ä¿ãåŸç¶ã®ãªãªãŒã¹ã§ã®ç Žå£ç倿Žãåé¿ããããã«ãåãåé€ãããŸããã
æšå¥šãããã¢ã¯ã·ã§ã³
ãã®åå空é㯠.NET 5 ã§è¿œå ãããŸããããããžã§ã¯ãã .NET 5 以éã«ã¢ããã°ã¬ãŒãããŸãã
-åã¯-
ã³ãŒãã Microsoft.VisualBasic.MyServices åãšãã®ã¡ã³ããŒã®äœ¿çšã«äŸåããŠããå Žåã.NET ã¯ã©ã¹ ã©ã€ãã©ãªã«ã¯å¯Ÿå¿ããåãšã¡ã³ããŒããããŸãã Microsoft.VisualBasic.MyServices åãšåçã® .NET ã¯ã©ã¹ ã©ã€ãã©ãªåã®ãããã³ã°ã次ã«ç€ºããŸãã
| Microsoft.VisualBasic.MyServices ã®å | .NET ã¯ã©ã¹ ã©ã€ãã©ãªã®çš®é¡ |
|---|---|
| ClipboardProxy | System.Windows.ClipboardWPF ã¢ããªã±ãŒã·ã§ã³ã®å ŽåãSystem.Windows.Forms.ClipboardWindows ãã©ãŒã ã¢ããªã±ãŒã·ã§ã³ã®å Žå |
| FileSystemProxy | System.IOåå空éã®å |
| RegistryProxy | Microsoft.Win32åå空éã®ã¬ãžã¹ããªé¢é£ã®å |
| SpecialDirectoriesProxy | Environment.GetFolderPath |
ã«ããŽãª
Visual Basic