草庐IT

基于WinForm的c#上位机制作

前言相关代码在github和gitee上放出gitee的地址:点此GitHub的地址:点此起名是fruit,是因为以前入门c#的时候第一个学的例子就是fruit命名的。现在程序中fruit工程对应的是winform版本,目前winform版本基本完成;ocean工程对应的是wpf版本,由于学业紧张,wpf版本的迁移初步完成,因学业考虑暂停,相关的介绍在另一篇博文(点此)。这是一个串口通讯软件,基础功能是读取数据存入数据库,同时将数据发给下层,修改下层的扩展变量。附加功能是对针对微网控制,传送的数据进行数据处理,采用过粒子群等算法,期间经历多次改版。设计它的原因是,在嵌入式开发或是其他学术研究时

c# - 无法将 winform 控件大小传递给非托管代码

我使用非托管库从网络摄像机获取视频流。有功能:[DllImport("client.dll",EntryPoint="Network_ClientStartLive",SetLastError=true)]protectedstaticexternintNetwork_ClientStartLive(refIntPtrpStream,IntPtrhDev,IntPtrpClientInfo,[MarshalAs(UnmanagedType.FunctionPtr)]ReadDatacbflpfnCallbackFunc=null,UInt32dwUserData=0);pClientI

c# - 在 winform 应用程序中使用表单名称打开表单

请问在winformc#中如何使用帮助或类名打开窗体?我有三种不同的形式用户管理群组管理位置管理我从数据库中获得了这三种形式的许可在菜单中单击我用这样的表单名称填充标签属性tsmMain.Tag=item.PermissionNametsmMain.Click+=newEventHandler(tsmMain_Click);我想做的是在单击按钮时动态打开表单并删除这些if条件?我可以通过反射(reflection)或其他方式做到这一点吗??ToolStripMenuItemaa=senderasToolStripMenuItem;vartag=aa.Tag;if(tag=="UserM

windows - WinForm 应用程序应该在哪里保存日志?

我正在开发一个WinForm应用程序,它允许使用“项目”(将应用程序视为VisualStudio,将项目视为VS解决方案)。我的问题是-应用程序应将其日志文件保存在哪里?一些要求包括:应用程序可能未以管理员身份运行(因此保存在%ProgramFiles%安装文件夹中不是一个好的选择)日志应该可供最终用户访问(以供查看或发送给支持团队)。(这意味着很难找到文件夹,例如%AppData%\Company\Application\Version\ProjectName...也不是一个好的解决方案)即使没有打开的项目,应用程序也可能会生成日志(因此只有在有项目时,将日志保存在项目文件夹中才有用

c# - 防止Winform最大化?

我想阻止我的桌面应用程序被最大化。它不应以任何方式最大化-通过双击标题栏,或单击键盘上的Windows+向上箭头等。->我禁用了MaximizeBox和MinimizeBox。->我还为我的WinForm设置了MaximumSize和MinimumSize仍然当我按下Windows+向上箭头时,我的胜利形式转移到屏幕的左上角,我的意思是它被最大化了。所以请告诉我任何防止这件事发生的方法...... 最佳答案 这里实际上有两个完全不同的问题在起作用。诚然,从功能的角度来看,它们看起来基本相同,但从实现模型的角度(正如Windows本身

windows - 最好的winform UI组件集是什么?

Closed.ThisquestiondoesnotmeetStackOverflowguidelines。它当前不接受答案。想要改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。3年前关闭。Improvethisquestion我一直在寻找商用winformUI组件集已有一段时间了。我已经看过大多数大型公司,我想我会花我的钱购买DeveloperExpressDXperience软件包。它并不便宜,但是可以做很多很棒的事情,例如集成的打印和报告,良好的拼写检查器实现等。由于功能丰富,这是一条学习曲线,但是它们有很好的支持站点并提供良好的支持。我想知道其他人使用什么以

c# - 将winform定位在屏幕的左下角

我试图在屏幕的左下角(在开始按钮上)放置一个表单我有以下代码试图这样做,但只考虑了屏幕的工作区域-所以表单位于开始按钮的正上方:intx=Screen.PrimaryScreen.WorkingArea.Left+this.Width;inty=Screen.PrimaryScreen.WorkingArea.Bottom-this.Height;this.Location=newPoint(x,y);下面的演示/屏幕进一步展示了我正在尝试做的事情: 最佳答案 使用Screen.PrimaryScreen.Bounds属性并设置th

c# - 如何通过网络在两个 WinForm 应用程序之间调用函数?

我的大厅里有一个视频亭设置,它可以让人们签到并打印带有他们的照片、姓名等的徽章。还有一个远程支持工具,不幸的是有时会崩溃。我在自助服务终端上有一个功能可以解决这个问题,但你现在必须去自助服务终端触发它。我还编写了一个管理工具,它使用WMI来监视和管理信息亭的其他一些方面。我希望能够通过此应用程序触发此修复功能。我在谷歌上花了无数个小时试图解决这个问题,但没有运气。也许我没有在寻找正确的东西。我的问题是这样的。在C#中,如何通过网络从管理应用程序调用我的信息亭应用程序中的修复功能? 最佳答案 好的,在我的Server表单上,我有一个B

c# - 如何最好地公开 WinForm 中的方法?

我有一个C#形式的应用程序,它使用串行端口连接到电子设备。“'SerialCommunicationManager'”类在应用程序启动时连接到串行端口,并处理与设备通信的肮脏业务。我想要公开以下方法。写()SerialDataReceived事件SerialDataTransmitted事件主要是在同一台机器上运行的本地网站是我想公开其方法的网站,但我想将来也需要外部应用程序。公开功能的最简单方法是什么?TCPIP客户端服务器?网络服务?(我可以在WinForm中创建网络服务吗?)其他?非常感谢//大卫 最佳答案 我会推荐self-

C# winform delegate委托以及异步调用委托(跨线程调用控件UI)使用总结

文章目录前言几个概念什么是委托delegate为什么要委托直接上代码例子直接来个最简单的写法稍微复杂完整的写法来个Action的写法来个Action带入参的写法类似还有Func的写法,这个和Action类似,只是多了返回值而已,不记录了前言为啥写这个?因为本人间断性的会进行winform的开发,对各种跨线程的处理,以及UI的处理.每次都忘记怎么写.都要重新百度,效率很低.这里记录总结一下.也分项给有需要的朋友哈哈哈几个概念什么是委托delegate刚开始接触的时候,觉得太TM绕了(我智商低).自己总结一下.委托就是一个方法行为的集合,执行委托就相当于执行一些列的行为一个委托可以只有一个方法,可