草庐IT

winforms-interop

全部标签

c# - 打开 TopMost = true 的 WinForms 窗体但没有窃取焦点?

我有一个在用户屏幕上弹出并具有TopMost=true的表单,但它抢走了焦点。我怎样才能让它在第一次出现时不抢走焦点? 最佳答案 这对我有用。它提供TopMost但没有焦点窃取。protectedoverrideboolShowWithoutActivation{get{returntrue;}}privateconstintWS_EX_TOPMOST=0x00000008;protectedoverrideCreateParamsCreateParams{get{CreateParamscreateParams=base.Crea

c# - 使用 'Microsoft.Office.Interop.Word._Document.Close'时编译时警告

有人知道如何解决这个警告消息吗?Ambiguitybetweenmethod'Microsoft.Office.Interop.Word._Document.Close(refobject,refobject,refobject)'andnon-method'Microsoft.Office.Interop.Word.DocumentEvents2_Event.Close'.Usingmethodgroup. 最佳答案 我设法解决警告的唯一方法是使用显式强制转换:vardoc_close=(Microsoft.Office.Inte

c# - 在 Winform 应用程序的 DataGridview 中隐藏底部的额外行

我已将datagridview绑定(bind)到数据表。但是gridview在底部显示了一个额外的空行?我应该如何隐藏它?提前致谢 最佳答案 额外的行是手动添加一行到你的datagridview。如果您不需要它,您可以通过禁止用户添加行来禁用它:this.dataGridView.AllowUserToAddRows=false; 关于c#-在Winform应用程序的DataGridview中隐藏底部的额外行,我们在StackOverflow上找到一个类似的问题:

c# - 同时运行两个winform窗口

我有两个C#winform(.NET4.0)表单,每个表单连续运行独立但相似的自动化任务。不同之处在于它们是不同的流程/工作流,但在它们如何操作以共享项目中的相同资源(方法、数据模型、程序集等)方面足够相似。两种形式都已完成,但现在我不确定如何运行该程序,以便每个窗口在启动时打开并独立运行。该程序在部署时将“始终在线”。这可能看起来有点基础,但我的大部分开发经验都是网络应用程序。线程/等等对我来说还是有点陌生​​。我进行了研究,但我发现的大部分答案都与用户交互和顺序用例有关——这只是一个系统,它会持续运行两个不同的进程,这将需要独立地与世界交互。我发现的潜在解决方案可能涉及多线程,或者

c# - 用于 winforms 的 MVP 框架

我在一个新项目中工作,我想实现MVP模式。有使用这种模式的winforms框架吗?我检查了CAB,但我的项目实现起来并不复杂,我正在寻找更易于实现和使用的东西。谢谢! 最佳答案 如果您正在寻找简单的东西...那么您真的不需要框架。您可以推出自己的MVP模式。编写基类只需要几分钟。//BasePresenterClasspublicclassPresenterwhereTView:class,IView{publicTViewView{get;privateset;}publicPresenter(TViewview){if(view

c# - WinForms 中的多色线性渐变

如何在WinForms中创建多色线性渐变?System.Drawing.Drawing2D.LinearGradientBrush只允许两种颜色。 最佳答案 与此处相同的答案:Winforms中的多色对角线渐变Multi-colordiagonalgradientinwinforms举个例子voidMainFormPaint(objectsender,PaintEventArgse){LinearGradientBrushbr=newLinearGradientBrush(this.ClientRectangle,Color.Bla

c# - 如何使用 WinForms PropertyGrid 编辑字符串列表?

在我的应用程序中,我有一个允许用户更改设置的属性网格。这适用于字符串和其他值属性,但我现在需要的是用户可以编辑的字符串列表。问题是如果我有MyPropertyGrid.SelectedObject=new{Test=newList()};在我的代码中,用户尝试编辑Test属性,当他们单击“添加”按钮时,会发生以下错误:Constructorontype'System.String'notfound这是有道理的,因为字符串是不可变的。但是,我仍然需要一些方法来在属性网格中存储多个字符串(或类似字符串的数据)。有没有人对我如何实现这一目标有任何想法? 最佳答案

c# - 在 C# winform 中使用 app.config 访问数据库连接字符串

我似乎无法访问我的c#winforms应用程序中的app.config数据库连接字符串。app.config代码C#代码:SqlConnectionconn=newSqlConnection();conn.ConnectionString=System.Configuration.ConfigurationSettings.AppSettings["MyDBConnectionString"];当我尝试C#代码时,我收到一条消息:警告1“System.Configuration.ConfigurationSettings.AppSettings”已过时:“此方法已过时,已被System

c# - F5 或开始调试按钮对于 Winform 应用程序是灰色的吗?

我知道SO上已经有很多与此相关的问题,但直到现在还没有人为我醒来。我有一个winform应用程序,但是当我尝试调试它时,我的“开始”按钮被禁用了。现在,当我尝试调试时,我的“开始调试”键被禁用了我已经做过的事情是:1)我已经将我的winform应用程序设置为单一启动项目。2)我已经删除了多个启动项目选项。3)我曾多次尝试重新启动我的VisualStudio。4)我已经重建了应用程序,它正在成功构建,没有错误。5)我已经构建了整个解决方案,并且它也构建成功且没有错误。6)我检查了sln文件,里面的格式版本是:MicrosoftVisualStudioSolutionFile,Format

c# - 使用 C# 在 Windows 7 中创建 Metro 风格的 Winform

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭6年前。Improvethisquestion是否可以在Windows7上的visualstudio10或visualstudio11中设计metro风格的winform?如果是这样,我在哪里可以找到有关如何操作的信息?我已经找到了一些链接,比如http://msdn.microsoft.com/en-us/library/windows/apps/br211380但我不了解WindowsMetro风格。谁能帮我解决这个问题?