草庐IT

winforms-interop

全部标签

c# - 使用 WinForms ProgressBar 异步/等待

我在过去使用BackgroundWorker时遇到过此类问题,但我想使用.NET4.5的新异步/等待方法。我可能找错人了。请指教。目标:创建一个组件,该组件将执行一些长时间运行的工作,并在执行工作时显示带有进度条的模态表单。该组件将获取一个窗口的句柄,以在执行长时间运行的工作时阻止交互。状态:见下面的代码。在我尝试与window互动之前,我认为我做得很好。如果我放任不管(即不要触摸!),一切都会“完美”运行,但如果我只是点击任一窗口,程序就会在长时间运行的工作结束后挂起。实际交互(拖动)将被忽略,就好像UI线程被阻止一样。问题:我的代码可以很容易地修复吗?如果是这样,如何?或者,我应该

javascript - Winforms 相当于 javascript setTimeout

是否有一个简单的解决方案/想法/策略来在WinForms应用程序中创建一个setTimeout等效函数。我主要是一名Web开发人员,但不确定我将如何在WinForms应用程序中进行此操作。基本上,我有一个文本框,每次击键后我都想运行一个任务来填充一个列表(比如自动完成类型的东西),但如果用户不断输入字符,我希望能够取消(例如clearTimeout)......我唯一的猜测是可能使用BackGroundWorker并使其最初处于sleep状态,当它处于sleep状态时,它可以被取消,如果用户停止输入键并且sleep期结束,它就会继续运行任务等(我不关心示例是C#还是Vb.Net)

c# - Silverlight 托管在 Winforms 中

我想通过winforms浏览器在winforms中托管一个silverlight控件,但为了让它工作,我需要某种方式让表单与silverlight对话,反之亦然。是否可以使用JavaScript作为中间人以某种方式让两者相互交互?即,让表单与浏览器的javascript对话,并与silverlight控件对话?有没有更好的办法?甚至根本没有办法?(除了将代码编译为silverlight和wpf) 最佳答案 我认为使用Windows窗体WebBrowser控件是最好的选择。为此,您需要在网页上安装Silverlight应用程序,然后将

C# (江湖熟手)- winform程序打包为安装文件

插件安装VisualstudioInstaller 安装与使用第一步:打开VS开发工具,打开你要打包的项目,在上方菜单中选择 扩展——》管理扩展——》联机——》右直接输入搜索关键字:MicrosoftVisualStudio , 点击下载,下载结束后根据提示安装工具就行 第二步:再次打开需要打包的项目,解决方案上右键——》添加——》新建项目,项目类型选择 SetupProject,点击下一步,修改名称和位置,点击确定 完成后,就是如下界面 第三步:右键ApplicationFolder,选择Add——》项目输出——》主输出, 最后点击确定第四步:右键主输出,点击CreateShortcutto

C#winform 点叉叉按钮关闭一form窗体应用后,后台进程仍在运行的解决办法

文章目录前言一、可能的原因11.1猜想11.2验证1.3结论二、可能的原因22.1猜想22.2验证2.3结论三、最终解决办法3.1出现的原因:3.2解决办法13.3解决办法23.4关闭窗体的多种方法3.5FormClosing事件和FormClosed事件前言如果要解决“C#winform点叉叉按钮关闭一form窗体应用后,后台进程仍在运行”的问题,可以直接点击目录跳转到3.4关闭窗体的多种方法。前面为记录遇到该问题的一些过程。之前用C#做了一个日志备份的窗体应用程序,最近把这个程序完善了一下,在窗体上显示了配置文件中的一些信息,并且增加了更新按钮,点击会将一些比较重要的配置写到日志文件中。但

C# Winform 三层架构

一、介绍三层架构是C#桌面开发中比较常用的框架,是由 表示层(UI)、业务逻辑层(BLL)和数据访问层(DAL)三层架构组成,目的是为了“高内聚,低耦合”。开发人员分工更明确,将精力更专注于应用系统核心业务逻辑的分析、设计和开发,加快项目的进度,提高了开发效率,有利于项目的更新和维护工作。从三层架构可以看到,很类似于 Web前端开发的MVC框架(视图View,模型Model,控制Contorller),但本质上也有不同的地方,比如都有视图(三层中叫UI),Model,三层中没有Contorller,但BLL层和 Contorller很类似。一个项目如果用到了三层架构,这就必然要涉及到数据库,否

c# - 在 winforms 应用程序中使用 PHP webservice

目前我将我的C#mysql连接信息存储在类文件本身中,这看起来并不聪明,因为最终用户可以简单地使用像NETReflector这样的反射器来调试源代码,以防它被混淆。现在stackoverflow上的用户建议创建一个将操纵数据库的Web服务。最终用户将使用的软件然后使用用户的凭据简单地通过Web服务验证自己,然后使用它来访问资源。现在我有以下问题,我的服务器在linuxubuntu上运行并且已经存储了一个使用plesk创建的网站。我知道我可以使用http://www.mono-project.com/在Linux上托管Web服务。但我从来没有这样做过,因为我一直使用PHP来做这样的事情,

java - 使用 WSHttpBinding 的 WCF 和 Java Interop,

我正在尝试让一个简单的WCF应用程序与Java客户端一起工作。服务使用WSHttpBinding公开了一些简单的操作,它做得很完美。现在,由于某些原因(可能是由于Java端的WS-*规范不完整),似乎无法为远程系统上托管的此WCF服务生成Java客户端。但是,与basicHttpBinding一起使用时一切正常。如果您成功使用或已经实现了WCF(wsHttpBinding),并且它可以与Java/非WCF客户端互操作? 最佳答案 您在Java中使用什么来生成客户端?并非所有框架都是生而平等的。:)根据这篇文章here,您将需要使用W

java - IntelliJ IDEA 13 给出关于不兼容类型的无效错误(Play 中的 Java-Scala-InterOp)

我刚刚从IDEA12升级到13(社区版),从那时起,我在IDEA中收到关于我的游戏项目类型不兼容的错误。OptionauthHeaderOption=requestHeader.headers().get(AUTHORIZATION);requestHeader是play.api.mvc.RequestHeader类型。错误消息指出:Incompatibletypes.Found:'scala.Option',required:'scala.Option因此它提示类型不兼容,但同时声明所需类型和找到的类型相同。当从Play控制台运行应用程序时,一切正常,因此编译工作正常。错误发生在调用

实用指南:C#中优雅更新GUI的基础和高级技巧(WinForms和WPF)

 概述:以上内容详细介绍了在C#中如何从另一个线程更新GUI,包括基础功能和高级功能。对于WinForms,使用`Control.Invoke`;对于WPF,使用`Dispatcher.Invoke`。高级功能使用`SynchronizationContext`实现线程间通信,确保清晰、可读性高的代码。在C#中,从另一个线程更新GUI通常需要使用UI线程的同步上下文(SynchronizationContext)或者专门用于在UI线程执行操作的方法(Control.Invoke或Dispatcher.Invoke)。下面分别给出在WinForms和WPF中的基础功能和高级功能的实例源代码。在W