winform小程序定时自动运行
c#winform窗体如何实现服务器实时接收数据,不借助button?
c#winform窗体如何实现服务器实时接收数据,不借助button?
宽泛的讲,有两种方式,实现Client和Server的实时通讯(数据接收)。
1、 Pull 也就是拉。 即Client把数据从Server中拉出来。
因为winform本质是事件驱动,如果不想用button,那么最简单的方式就是用定时器(timer), 比如每10秒请求一次数据,
这种方式本质上和button没有区别,还是通过事件来驱动应用,只不过是“自动”的去读取数据。
优点是简单, 缺点是不及时(如果数据是1秒一变,这个10秒的间隔就太长了),而且资源利用率较低(如果1小时都没有变化, 这10秒一次的刷新就很占用资源)
2、Push 推,即Server将信息推送到Client中去。
Winform中实现推送信息,一般需要和Server建立连接,连接后,当Server需要推送(比如数据有更新)时,才向Client中发送信息。
优点是数据的时效性较好,而且资源利用合理。
缺点是需要大量的代码(相比定时器那种方法)
Push模式可以参考“观察者模式”的开发方式。
c# winform scroll滚动条,滚动到底?
1)在Winform中放置一个PictureBox;将窗体的AutoScroll属性设置为True
2)在PictureBox上使用Graphics.DrawImage函数直接绘制图像。注意:绘制图像时按需要改变PictureBox的Width和Height。如果PictureBox的高度或宽度超过了Winform的区域,滚动条就会自动出现。
3)对滚动条编程,改变PictureBox的Left或Top
C#WinForm判断程序是否以管理员身份运行?
VISTA和Windows7都使用了UAC来控制程序访问,对于一些需要使用管理员身份运行的程序就得右键以管理员身份运行。
C#编程中可以使程序自动使用管理员身份运行,也就是我们常常看到一些程序的图标上会冒出个盾牌。
方法:在源码的Properties目录中找到,
将其中levelasInvoker改成levelrequireAdministrator就可以了,
如果没有文件可以打开项目属性,找到安全性项,勾上启用ClickOnce安全设置,这时会生成文件,
然后再把勾去掉,不要选上。
这样你重新编译,你的程序图标上就会出现个小盾牌了,就自动以管理员身份运行你的程序,无需右键打开。