问题标签 [initializecomponent]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 我不断收到 InitializeComponent(); 我的代码中的错误
我已经尝试了我所知道的一切,但我无法通过这个错误。每次我运行此代码时,都会出现以下错误:当前上下文中不存在名称“InitializeComponent”。拜托,有人可以告诉我发生了什么吗?
vb.net - 加载 VBNET DLL 性能缓慢
我在 VBNET 中开发的一些项目存在性能问题。我的项目是 DLL,它们由带有参数的 exe 调用,就像选项卡管理器一样。
问题是当我在 exe 中调用我的第一个 DLL 时,InitializeComponent 方法需要很长时间,但如果我从已经加载的 DLL 打开相同的 DLL,它会更快。它们在同一进程中,在不同的选项卡中。
例如,如果我从 exe 打开发票查询 DLL 需要 10 秒,但如果我从 exe 打开发票列表 DLL,然后单击发票调用发票查询 DLL,则只需 2 秒。但是,如果发票列表 DLL 已经是加载程序,并且我从一个新的 exe 调用发票查询 DLL,它又需要 10 秒。
我认为主要问题是我正在使用 DevExpress 和 GrapeCity(Farpoint Sheet)来创建我的表单的所有控件,并且我认为我的客户在加载它时遇到了性能问题。但是当显示第一个选项卡时,外部引用已加载,并且该进程中的新 DLL 没有问题。这是我知道的唯一解释,因为我在某些方法中添加了一个日志并且代码流是相同的,但是相同的代码第二次更快。
我想知道是否有任何方法可以在内存中维护外部引用,以便更快地加载 DLL,或者是否有任何编译参数来执行此操作,或者有什么好的做法可以使其更好。
编辑:
在运行之前,我尝试将 NGen 用于我的 DLL 以及 DevExpress 和 GrapeCity DLL,但性能是相同的。我不确定是否需要对代码进行任何更改才能使其正常工作。我签出的大多数页面都说,当您使用 Ngen 安装某些东西时,它会将文件上传到内存中。它应该更快,但它没有在我的应用程序中执行。我只在 Ngen 上执行了安装,我不确定是否需要做其他事情。
提前致谢。
问候
vb.net - StackOverflowException - 没有递归
我发布这个问题是因为现有论坛对StackOverflowException的引用虽然信息丰富,但与我遇到的当前场景并不完全相关。
我一直在为我的雇主开发一个应用程序,我最近为该应用程序创建了一个 MSI 并安装在公司的 Citrix 服务器场上。当我通过 Citrix Workspace 启动应用程序时,它成功启动。但是,当我单击特定按钮来实例化应用程序的一个 Windows 窗体时,发生了StackOverflowException。这是一个惊喜,因为StackOverFlowException没有被抛出到我的开发机器上,而且从来没有。我已经开发这个应用程序一年多了。
公司的 Citrix 服务器场中有三 (3) 台服务器。StackOverFlowException发生在其中两 (2) 个上,但不是第三个。我已经通过登录每个服务器并直接运行已编译的应用程序来验证这一点。
由于在 Citrix 服务器上调试错误不是一个选项,我在应用程序代码中添加了对话框窗口并创建了一个修改后的可执行文件,然后我在相关的 Citrix 服务器上使用它。
使用这种方法,我能够查明引发异常的语句。它在窗体的New构造函数被调用时抛出:
所以,我查看了构造函数的代码。在代码中放置更多对话框并重新运行应用程序,我能够确定在调用InitializeComponent期间发生了异常:
有问题的 Windows 窗体是一个非常大的窗体,其中包含多个控件,包括几个 TabControl、TreeView 和多个 SplitContainer(其中一些是嵌套的)。
毫不奇怪,InitializeComponent 是一个非常大的例程;太大,无法在此线程中发布;否则我会这样做。
我在New构造函数或InitializeComponent中看不到任何递归。此外,这里令人困惑的是为什么SystemStackOverFlowException发生在三台服务器中的两台上,而第三台却没有。
如果有人有任何想法,我想听听他们的意见。当然,任何建议和/或见解将不胜感激。
我的开发机器在 Windows 10 上使用 VS2017 (.Net Framework 4.8.1)。
我们服务器场中的三 (3) 台 Citrix 服务器都在 Windows 2008 Server R2 上。他们都安装了 .NET Frameworks 4.8.1。
c# - 出现错误:“名称 InitializeComponent 在当前上下文中不存在”,在每个 xaml.cs 类(Xamarin Forms)中
所以突然间,在我的所有解决方案中的每个 xaml.cs 类中都出现了常见错误“当前上下文中不存在名称 InitializeComponent”,我尝试了多种常见解决方案来解决这个问题,但似乎没有一个有效。
继承 Content 视图的 xaml.cs:
从内容页面继承的 xaml.cs:
这些是我尝试过的常见解决方案:
- 验证 xaml 的 buildAction 是否设置为 EmbeddedResource 2) 验证 xaml 和 xaml.cs 中的命名空间是否相同。
- 在 xaml 中验证自定义工具:MSBuild:UpdateDesignTimeXaml
c# - C# 应用程序在 InitializeComponent() 启动时崩溃,抛出 CultureNotFoundException
我的 Windows 窗体应用程序在 Windows 10(最新版本)上安装和运行没有问题。但是,当安装在 Windows 2012R2 x64 终端服务器上时,程序在启动时会崩溃。
事件日志(请参见下文)似乎指向在 MainForm 的构造函数中调用System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
的方法中的行。InitializeComponent()
在那里,它抛出一个CultureNotFoundException
.
服务器完全是最新的,并且安装了正确版本的 .NET (v4.7.2)。(一个重要的说明是我自己没有任何访问服务器的权限,所以我无法直接在服务器上调试软件。)
我尝试安装不同版本的应用程序,该应用程序尝试CultureInfo.CurrentCulture.NumberFormat
在调用InitializeComponent()
. 该版本的程序能够毫无问题地从中获取,但随后程序仍然NumberFormat
在. 从这里我了解到问题似乎不是由本地文化设置引起的。CurrentCulture
InitializeComponent()
深入研究 Microsoft 的参考代码后,我进入了包含一个 try 语句GetNeutralResourcesLanguage()
的类,该语句在 try时特别捕获。我可能是错的,但我相信这是引发异常的地方。在 catch 声明中指出:ManifestBasedResourceGroveler
ArgumentException
CultureInfo c = CultureInfo.GetCultureInfo(cultureName);
关于如何解决这个问题的任何想法?提前谢谢了。
事件簿:
c# - 在designer.cs c#中的初始化顺序
我创建了一些用户控制,其中一些依赖于其他。有保存字段的数据类。有网格类,您可以在其中选择数据类。在设计模式下,它从该数据类收集所有信息并执行一些功能。有一些字段类,您可以在其中选择一个网格类,然后是一个字段。拳头射击一切正常。但后来,form Designer.cs 中的初始化顺序发生了变化,字段类在网格类之前创建。因为网格类没有初始化,一些属性有空值,程序出错。在设计器模式下一切正常,但在运行模式下,我得到一个错误。有人知道解决方案吗?因为 fcRISIKO_betr_bezeichnung 在 grdRISIKO 之前被初始化,所以我得到了错误。有没有办法手动强制初始化顺序并将其永久化?
事先谢谢... Murat
这是设计器代码的一部分
winforms - Winforms 以 100%、125%、150% Windows 缩放模式显示,并减轻每次更新 GUI 时都需要不断编辑 Designer.cs 类
我正在使用 Visual Studio 2010 中的 .NET 4 配置文件在 Windows 10 上的 Windows 100% 缩放 (96dpi) 中开发 Winforms。
根据这个高度评价的答案的建议,我在文件中设置为true,dpiAware
将主表单的设置为还必须将这些行添加到 Designer.cs 文件中:app.manifest
AutoScaleMode
Font
splitContainers
AutoScaleMode
这确保了如果用户碰巧在 125%、150% 甚至其他缩放模式下使用 Windows,那么 GUI 将正确调整大小,而不会出现某些组件太小或太大的问题。
不幸的是,根据上述链接的建议:“只有控件列表中的控件在调用ResumeLayout
末尾时InitializeComponent
才会自动缩放”,这意味着我需要将上述两行放在 Designer.cs 文件中。我不能简单地将它们放在 Form Load 事件中。
不幸的是,这意味着每当我在所见即所得编辑器中更新或移动小部件/按钮/标签时,都会自动重新创建 Designer.cs 文件,并且我丢失了上面的两行代码。所以每次我在 Wysiwyg 编辑器中更新 GUI 时,我都必须记住将它们放回原处。
该链接还提供了一个潜在的解决方案,通过部分避免使用所见即所得编辑器,而是在 Load 事件中以编程方式创建 splitContainers 来避免这种丑陋。我引用:“如果您动态添加控件,那么您需要先SuspendLayout(); AutoScaleDimensions = new SizeF(6F, 13F); AutoScaleMode = AutoScaleMode.Font; ResumeLayout();
在该控件上添加它”。
问题是我有大量的 splitContainer 代码要移动(例如添加到 splitContainers 的对象),它会破坏所见即所得编辑器的外观(我想看看我的 splitContainers,非常感谢因为它们是 GUI 的关键部分,并且里面有很多元素/小部件,我也想在设计时看到它们!)。
我的问题是我是否可以两全其美:在所见即所得编辑器中保持和内容的外观,同时通过使用上面似乎必须在设计器splitContainers
中的两行代码(*.AutoScaleMode = ...
和)保持适当缩放的功能*.AutoScaleDimensions = ...
.cs 文件之前*.ResumeLayout()
被调用。
xaml - Xamarin 表单选项卡式页面选项卡正在初始化
我正在 Xamarin 中开发一个包含 3 个选项卡的选项卡式页面( Tab1= "Home" , Tab2= "Chat" ,Tab3="Menu" )
当应用程序启动 ( ) 时,它首先将所有选项卡一起MainPage = new TabbedPage()
初始化 ( )。InitializeComponent();
我的问题是,是否有办法在按下选项卡时单独初始化每个组件?
c# - 如何修改 InitializeComponent 方法中编写的代码(WinForms Designer 生成的代码)?
我是一名 WPF 开发人员,必须在 WinForms 中执行一些任务(我是 WinForms 的新手)。
与 WPF 不同,我注意到 WinForms 中的 InitializeComponent 方法是由 Windows 窗体设计器生成的,显然我无法手动修改用此方法编写的代码,因为它可能会在代码重新生成时被覆盖。
假设我希望在 WinForms From 的 InitializeComponent 中更改以下行:
至:
这样做的正确方法是什么?我没有在代码库中找到任何强制执行此 BottomCenter 值的自定义代码?这个值是从哪里来的?它是 WinForms 中的默认值吗?
我在网上搜索并遇到过类似的问题,例如: https ://social.msdn.microsoft.com/Forums/en-US/92ab4ea6-c7c8-44cb-91e7-e91c4f77accd/how-to-modify-windows-表单设计器生成的代码在初始化组件方法编程?forum=winforms
其中建议在控件上实现自定义 CodeDomSerializer。这是做这么简单的事情的正确方法吗?我只想更改一个简单的 ImageAlign 属性。