메뉴 건너뛰기

게임 커뮤니티 4브론즈

IT 해외 뉴스

本文翻译于Klaus Loeffelmann的这篇英文文章:Updated Modern Code Generation for WinForm’s InitializeComponent – .NET Blog (microsoft.com)   当你使用Visual Studio中的WinForms Designer来创建一个WinForms表单或用户控件时,它并没有像XML或HTML那样的特殊定义或文件格式来表示用户界面。从一开始,WinForms使用的唯一格式就是程序代码。在WinForms Visual Basic项目中定义的表单或用户控件会被保存到VB代码中。在c#项目中,这就是c#代码。这些代码将被放置在一个专用的Designer文件中,该文件位于实际表单代码文件后面,也包含控制UI的代码。 当你的表单或用户控件需要在WinForms Designer中再次打开时,该代码将被解释并根据结果对象图– 在Designer中重新创建表单/用户控件。这就是我们把保存表单的过程称为CodeDOM序列化的原因。这里的CodeDOM指的是一种对象模型(Code Document object model,代码文档对象模型),它允许开发人员通过特定类型的对象来定义程序的各个方面或程序的一部分。 虽然CodeDOM很灵活,可以比较容易地进行扩展,并且支持比Visual Basic或c#更多的语言,但是从现有的代码文件生成CodeDOM图是一件完全不同的事情。虽然CodeDOM可以通过现有的编译器实现为特定的语言编写代码文件,但生成的代码风格仍然是. net框架刚开始时的风格,在许多情况下已经不再符合当前的编码标准。 在WinForms中,当你设计一个表单的时候,所有相关的内容都是在每个表单或用户控件的一个方法中生成的。这个方法(还有一些基础结构和初始化代码)叫做InitializeComponent。 这个方法会被表单的构造函数无条件地调用。在c#中,这是非常明显的,你添加到项目中的新表单总是具有构造函数和所需的调用: public partial class Form1 : Form { public Form2() { InitializeComponent(); } } 在Visual Basic中,如果你不显式地添加构造函数Sub New,


원문출처 : https://devblogs.microsoft.com/dotnet-ch/%E6%9B%B4%E6%96%B0winforms-initializecomponent%E7%9A%84%E7%8E%B0%E4%BB%A3%E4%BB%A3%E7%A0%81%E7%94%9F%E6%88%90
번호 제목 글쓴이 날짜 조회 수
공지 자동수집 대상 사이트 KanoT 2023.02.14 2157
347 [DevBlogs] Teams Toolkit for Visual Studio Code Update – April 2023 뉴스봇 2023.04.20 437
346 [DevBlogs] Git Tooling Preview Features to Enhance Productivity 뉴스봇 2023.04.20 314
345 [DevBlogs] The case of the unhandled exception in a brokered Windows Runtime component 뉴스봇 2023.04.19 349
344 [Stack Overflow] Ops teams are pets, not cattle 뉴스봇 2023.04.19 217
» [DevBlogs] 更新WinForm’s InitializeComponent的现代代码生成 뉴스봇 2023.04.19 1096
342 [DevBlogs] Announcing TypeScript 5.1 Beta 뉴스봇 2023.04.19 1377
341 [DevBlogs] DirectStorage 1.2 Available Now 뉴스봇 2023.04.19 1047
340 [DevBlogs] OData property changes to callRecords change notifications in Microsoft Graph 뉴스봇 2023.04.19 1492
339 [Godot] Godot 4.1 Rendering Priorities 뉴스봇 2023.04.19 197
338 [DevBlogs] Functional exception-less error handling with C++23’s optional and expected 뉴스봇 2023.04.19 238
337 [DevBlogs] Money Talks: Chatting With Your Favorite 10-K 뉴스봇 2023.04.19 674
336 [DevBlogs] Azure SDK Release (April 2023) 뉴스봇 2023.04.19 640
335 [Stack Overflow] We bought a university: how one coding school doubled down on brick and mortar (Ep. 555) 뉴스봇 2023.04.18 663
334 [DevBlogs] No, it is not a security vulnerability that there is no certificate of appreciation for reporting a bug 뉴스봇 2023.04.18 407
333 [Stack Overflow] Introducing Communities on Teams: where domain, practice, and community come together with purpose 뉴스봇 2023.04.18 1054
332 [DevBlogs] Async/Await在 C#语言中是如何工作的 뉴스봇 2023.04.18 317
331 [DevBlogs] Semantic Kernel Now Available In Python Flavor 뉴스봇 2023.04.18 1348
330 [DevBlogs] Running non-root .NET containers with Kubernetes 뉴스봇 2023.04.18 349
329 [Stack Overflow] Community is the future of AI 뉴스봇 2023.04.18 1019
328 [DevBlogs] How can I find the invalid class when C++/WinRT tells me that the class may not be final? 뉴스봇 2023.04.17 334
위로