草庐IT

Winforms

全部标签

c# - MVP 和 Presenter 粒度

我们一直在使用MVP模式和Winforms,并取得了相当大的成功。然而,关于MVP总是弹出一个问题:对于演示者来说,什么是好的粒度?我的意思是:对于Winforms,细粒度通常适用于用户控件。这样,在设计更复杂的GUI时,很容易重用用户控件并将它们用作构建block。但是,与演示者具有相同的(精细)粒度似乎是一个问题。一方面,粗粒度的演示者阻碍了使用“插件”控件的能力,并且它有点违反DRY原则:多个演示者通常需要实现相同的逻辑(填充例如,客户列表),它由多个更复杂的控件使用。另一方面,细粒度呈现器似乎限制了在不同情况下重用控件的能力。例如,编辑View有时可能需要立即保存客户;有时它需

c# - 处理自动缩放的正确方法

我正在与另一位开发人员合作开发WinForms应用程序,我们在与自动缩放相关的外观方面遇到了很大的问题。我的系统(索尼VAIO)在此菜单上默认为125%:据我所知,125%将DPI设置为120,默认字体大小(菜单等)设置为11pt。在其他开发人员的系统上,他的默认值为100%,即96dpi和9pt字体。我不确定,但我认为只有DPI才是让我们感到悲伤的原因。问题表现为文本大小错误,或者覆盖了其他控件,或者间隔太远(取决于谁最后在设计器中打开它)。据我所知,所有ContainerControl都设置为AutoScaleMode.Inherit,顶级形式是AutoScaleMode.Dpi。

c# - 由于 DataGridViewImageColumn,DataGridView 在默认错误对话框中抛出异常

我提出这个问题是因为在网上找到答案花了太长时间,这可能是一个常见问题-这是我第二次在我的应用程序中遇到它。当带有DataGridViewImageCell的新行变得可见,并且没有设置默认值时,我的DataGridView会抛出以下异常:TheFollowingExceptionoccurredintheDataGridView:System.ArgumentException:Parameterisnotvalid.atSystem.Drawing.Image.FromStream(Streamstream,BooleanuseEmbeddedColorManagement,Boole

c# - 如何更改 Winforms 选项卡控件的背景颜色?

有没有办法改变winforms中选项卡控件的背景颜色,使其周围没有白色边框?我尝试了几种不同的方法,但它们都会导致显示相同的白色边框。 最佳答案 TabControl对自定义的支持很差。我用过thiscustomtabcontrol取得了很好的成功。如果您想像我一样更改外观,该代码非常有用。 关于c#-如何更改Winforms选项卡控件的背景颜色?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/qu

c# - 检查打印是否成功完成

我正在用C#开发窗口窗体应用程序。在我的应用程序中,我编写了以下代码以从本地计算机获取所有图像并进行打印。files=Directory.GetFiles(@"C:\temp","*.jpeg");foreach(variinfiles){varobjPrintDoc=newPrintDocument();objPrintDoc.PrintPage+=(obj,eve)=>{System.Drawing.Imageimg=System.Drawing.Image.FromFile(i);Pointloc=newPoint(100,100);eve.Graphics.DrawImage(

c# - 如何将任何应用程序的选定文本放入 Windows 窗体应用程序

这就是我想要做的,当用户通过双击鼠标选择任何正在运行的应用程序的任何单词(文本)时,应将特定突出显示的单词插入到已经运行的Windows应用程序中。到目前为止,我已经使用GlobalKeystroke实现了逻辑,其中用户必须触发CRT+C键盘组合键才能复制所选单词进入win表单应用程序。我想知道的是,有什么方法可以在不按下键盘任何按钮的情况下将这些选定的文本输入到应用程序中? 最佳答案 经过一番阅读,我找到了方法:使用globalmousekeyhook.codeplex.com之类的东西Hook双击事件(可选)保存剪贴板的当前状态

c# - 在 Adob​​e AxAcroPDFLib 中启用注释

我使用AxAcroPDFLib在C#Winform中嵌入了一个PDF查看器。但是,工具栏中的注释按钮(注释...)被禁用。我搜索并发现默认情况下它们是禁用的,但有些人报告使用Javascript启用它们:Collab.showAnnotToolsWhenNoCollab=True这里有办法做到这一点吗?编辑:是否可以在WebBrowser控件中使用浏览器插件?如果可以,如何实现? 最佳答案 更新-第一部分仅与AcrobatReader相关。有关何时使用完整版Acrobat的信息,请参阅第二部分。Acrobat阅读器我将通过声明这可能

c# - C#中的跨线程事件处理

我正在使用一个在单独的线程中运行自己的事件调度程序的框架。该框架可能会生成一些事件。classSomeDataSource{publiceventOnFrameworkEvent;voidFrameworkCallback(){//Thisfunctionrunsonframework'sthread.if(OnFrameworkEvent!=null)OnFrameworkEvent(args);}}我想将这些事件传递给Winforms线程上的Winforms对象。我显然检查了InvokeRequired并在必要时将其分派(dispatch)给Winforms线程。classSome

c# - System.Timers.Timer 仅提供每秒最多 64 帧

我有一个应用程序使用System.Timers.Timer对象来引发由主窗体(WindowsForms,C#)处理的事件。我的问题是,无论我将.Interval设置多短(甚至设置为1毫秒),我每秒最多只能获得64次。我知道Forms计时器有55毫秒的精度限制,但这是System.Timer变体,而不是Forms。该应用占用1%的CPU,因此它绝对不受CPU限制。所以它所做的就是:将计时器设置为1&nsp;ms当事件触发时,递增_Count变量再次将其设置为1&nsp;ms并重复_Count每秒最多递增64次,即使没有其他工作要做。这是一个“回放”应用程序,它必须复制传入的数据包,它们之

c# - "Input string was not in a correct format."

我正在从事一个项目,在该项目中我有一个表单,我可以通过该表单编辑ListView中可用的问题。每当我从ListView中选择一行并单击“修改”按钮时,ListView上方的文本框就会加载问题及其选项。这意味着当我在ListView中选择一行并单击“修改”按钮时,问题会自动加载到文本框中。我在那里编辑问题并单击“保存”以保存更改,但我无法访问文本框中的数据。它说{"Inputstringwasnotinacorrectformat."}。我的表单frmFormWizard的“编辑”按钮的代码如下:frmFormWizard.cs代码:usingSystem;usingSystem.Col