jjzjj

c# - 系统托盘中的 Winforms 通知图标重复

我正在处理WinForms应用程序,必须在系统托盘中显示应用程序图标(通知图标)。一切正常。但是当我从主页转到子页面并返回并检查系统托盘时它在系统托盘中有2个通知项目。再次当我转到另一个页面并查看时,另一个重复的图标出现在系统托盘中。这样,当我转到另一个页面并返回时,通知图标的数量会增加。如果有人能指导我哪里做错了,真的很感激。提前致谢... 最佳答案 由于您没有提供任何代码,我将继续进行预感和幸运的猜测:您实现的用于生成通知图标的逻辑会在您更改应用中的页面时发生的事件上执行。(可能)你的电脑里住着一只花栗鼠,他觉得星期一是和大师开

C# winform 闪烁标签背景色延迟

我有一个winform应用程序,我需要使标签背景颜色闪烁。我正在尝试使用for循环和Thread.Sleep来做到这一点,但不起作用。感谢您的帮助和建议:privatevoidbutton1_Click(objectsender,EventArgse){for(inti=0;i 最佳答案 为此任务使用UI计时器,而不是休眠。你让主线程一直处于休眠状态,并且你正在阻止用户输入。使用Thread.Sleep几乎总是表明您做错了什么。Thread.Sleep正确的情况很少。具体来说,让UI线程休眠是永远不正确的。放一个Timer在表单组件

c# - 帮助 : Call C# winforms dll from VB6 project?

我有一个VB6项目(windows应用程序),我必须在C#.net中的现有VB6项目中重新开发一个模块。我用C#.net开发的模块应该是一个dll,应该包含一些窗体。我能够从我的vb6项目中成功调用c#控制台应用程序dll,但是当我尝试从我的VB6项目中调用带有winforms的C#类库时,我遇到了问题。这是我为概念验证所做的工作-这是我的C#.net类库项目中的一个类文件。namespaceTestDll{publicinterfaceIClass1{voidDisplayMessage();}publicclassClass1:IClass1{voidIClass1.Display

时间:2018-01-08 标签:c#winforms: determine first run of program

我需要显示一次向导,这是我的Windows窗体应用程序在安装后第一次运行时。我想我可以使用像firstrun=false这样的用户设置。但是我还需要处理卸载程序然后重新安装的情况。该用户设置将如何重置?它已经存在于该用户的...\Users--user--\AppData\Roaming...的配置文件中。我需要在重新安装后运行该向导,因此我需要重置该设置。我是否需要使用自定义安装程序操作来执行此操作? 最佳答案 最好让您的安装程序在注册表中创建FirstRun键并将其设置为true(或1或其他),并确保您的卸载程序完全删除该键。然

c# - 将 Winforms 中的标签调整到左侧

我有15到20个标签,文本大小可变,文本框排列在表格中。文本框排列在标签旁边。表单的字体和颜色以及表单控件可以由用户在运行时配置。当我右对齐标签并将自动增长属性设置为true时,每当字体样式发生变化(比如从Arial到Georgia)时,右对齐标签不再右对齐。我需要一个标签解决方案(适用于winforms),以便在字体大小发生变化时自动向左增长。 最佳答案 如下设置标签属性;AutoSize=false;TextAlign=TopRight(oranythingtoright)然后手动将标签调整到最大区域以适合最长的文本。这对我有用

windows - 我的 winform 应用程序使用 xml 文件来存储数据,我应该将它们存储在哪里以便 Vista 用户可以写入它们?

我的winform应用程序使用xml文件来存储数据,我应该将它们存储在哪里以便Vista用户可以写入它们?谢谢 最佳答案 使用Environment.GetFolderPath以独立于操作系统的方式获取最合适的文件夹。特别是,您需要以下SpecialFolder值之一:ApplicationData-如果文件是漫游的,每个用户,并且仅供应用程序使用,不代表用户可能关心的文件。LocalApplicationData-如果文件是非漫游的、针对每个用户的并且仅供应用程序使用并且不代表用户可能关心的文件。CommonApplication

c# - 如何阻止所有键盘和鼠标输入到我的 WinForms 应用程序?

我有一个WinForms应用程序正在工作线程上从Web服务检索数据,我需要在加载数据之前禁用对我的应用程序的所有输入。目前,我创建了一个半透明的表单并将其放在我的应用程序上。当数据调用完成后,我关闭了这个覆盖表单。这很好地接受了它会给通过终端服务运行应用程序的用户带来相当大的性能问题。我尝试使叠加层完全透明,但这仍然会触发整个窗口的两次重绘,所以这根本没有帮助。我知道处理此问题的一个常见建议是禁用所有控件,但这也会重绘大部分屏幕,因此我正在寻找另一种方法来阻止所有用户输入。如有任何帮助,我们将不胜感激!更新:我应该提到我们已经考虑了模态对话框。目前我们显示叠加层,启动数据访问线程然后构

c# - Windows 8.1 无缘无故地扩展了 WinForms 应用程序

解决这个问题,你就会成为我的编程英雄:我的客户使用运行Windows8.1的SurfacePro平板电脑该应用程序是基于WinForms的桌面应用程序。当应用程序尝试打开TIFF图像时,只有在那时,Windows才会决定放大应用程序(所谓的显示缩放),结果是应用程序中的所有内容突然变得非常小,以至于您看不到或完全使用它。所以我们想避免这种缩放。(从“兼容性”选项卡中将其关闭更糟糕)现在是有趣的部分。代码如下所示:Streamstream=newMemoryStream(File.ReadAllBytes(fileName));//Atthispointtheapplooksok...b

c# - 编译基于 C# 的 Windows (WinForms App) 应用程序以在 Mac OS High Sierra 或 Mojave 上运行

我已经使用C#在Windows上构建了一个(Windows窗体应用程序)应用程序。现在,我想在不更改应用程序的情况下将整个项目/应用程序定位到macOS。有什么简单的方法可以实现吗?我不想在MAC上从头开始重建整个应用程序。我不想在MAC上使用虚拟机...我有VisualStuido2017和配对的MAC。但是,我在这里迷路了。 最佳答案 ;TLDRMono,使用WinForms和MonoDevelop用于开发的IDE。.NETFramework是包含所有内容但仅在Windows上运行的完整实现。.NETCore是.Net框架的较新

c# - 当 requestedExecutionLevel 设置为 "requireAdministrator"时,windows 8 winform 不会自动启动

我创建了一个winform应用程序。我的程序需要管理员权限才能运行,所以我添加了具有以下权限的app.manifest文件:我将程序添加到Windows8自动启动,因此它应该自动启动。当我将app.manifest更改为以下行时,它会在Windows启动时成功加载。我怎样才能用windows启动我的程序并仍然保持其管理员权限?谢谢,什洛米 最佳答案 要么将需要高权限的功能分离出来,放到一个WindowsService中(可以设置服务器启动的账号,也可以默认为SYSTEM账号)。或者使用计划任务启动您的应用程序(在这里您还可以选择您的