摘要:
写完的代码程序还有很多不完善的地方 这是目前的状态 下面是对一个网站首页进行截图 截图后可以保存为指定格式实现原理 使用WebBrowser控件加载需要截图的网页 调用WebBrowser的Navigate(string Url)方法加载需要截图的网页 当网页加载完毕后进行截图此方法也有缺点 WebBrowser不具备IE的智能纠错功能 对某些CSS样式不严格的网页可能出现解析上的错误,导致网页的布局混乱 这样截图的布局也是混乱的对于某些采用ajax技术的网站 根据其加载的方式不同 可能无法窃取到动态延迟加载的内容对于有些网页(极少数)无法进行截图,会出现错误 具体原因目前还没有找出来,不过对 阅读全文
摘要:
1.快速运算获得 通过高级运算符获得 [代码]2.转换成Point对象 此方法容易使用[代码]获得Point对象直接访问point.X point.Y就太轻易了 阅读全文
摘要:
很多时候我们需要使用到自定义控件 而在C#中 我们主要以3中方式创建自定义控件,还有些需要注意的地方时常被忽略 比如Click事件,用户控件的Click并不像系统的Button单击1.继承自.NET类库中已有的控件 如TextBox MenuStrip Pannel2.继承自Control类3.继承自UserControl类下面是3个小示例1.继承自类库中现有的控件 下面自定义一个ExtendTextBox 该控件扩展了一个属性,可以现在文本框只能输入数字,字母或者所有字符代码 Code highlighting produced by Actipro CodeHighlighter (fre 阅读全文
摘要:
制作一个播放器的控制按钮组合控件 较好的封装子控件 并提供公开属性更换外观组合控件还差按钮上的图形 比如中间的播放图标 上一个 下一个 打开 停止的图标,控件使用alpha混合和渐变组合控件一共上下左右四个按钮 自身作为中间的按钮使用,并且可以适应各种宽度和高度我的思路是这样的:总共有五个类 组合控件MP3Buttons 上下左右四个按钮类,主要实现一个周边按钮 其它3个按钮继承自这个按钮,并重写一个方法就可以了,所以主要是实现2个类 组合按钮类,任意一个周边按钮1.先设计一个左边按钮的类 LeftButton:UserControl 本可以继承Control类 不过Control不支持背景透 阅读全文
摘要:
更改MenuStrip的外观 让它不再是系统默认的外观 美观的界面总是让人赏心悦目的 文章都比较简单 但是效果很好 很适合像我这样的初学者我在程序员之窗看到过这样的文章 但自己水平有限 没能实现像他所说的那样的美化 不能完全实现.NET类库提供的渲染菜单外观的抽象类,所以集成了一个专用类 并重写其中一些方法,实现的外观的更改,看看效果:这里 我们自定义一个控件 继承自系统的MenuStrip MenuStrip具有一个Renderer属性 此属性接受一个System.Windows.Forms.ToolStripRenderer类的对象 这个类定义了菜单 工具栏的外观 此类是一个抽象类 系统菜 阅读全文
摘要:
我是一个C#的初学者 只要涉及到windows窗体编程 都希望窗体的外观比较好看 不是系统默认的那样对于C# 更改窗体外观感觉并不那么轻松 更改窗体外观涉及到使用GDI+ 我所知道的有两种方法:有系统边框的窗体 处理窗体的Paint方法,在paint方法中 参数e.Graphics属性将返回一个对象 用来作画 但是这个画布的区域是窗体的客户区 所以无法修改到窗体的标题栏 边框等位置的。要更改标题栏只有获取整个窗口的句柄 这样创建的画布是整个窗体区域 但是对于我这样的初学者来说 对于句柄 windowsAPI还很不熟悉 我相信大多数的初学者或者学生都和我有相同的困惑 所以我使用了第二种办法 无边 阅读全文
摘要:
在调试器中运行应用程序时,如果一个不是创建某个控件的线程的其他线程调用该控件,则调试器会引发一个 InvalidOperationException,并显示以下消息:“从不是创建控件控件名称 的线程访问它。” 在未使用 Invoke 方法的情况下,从不是创建某个控件的线程的其他线程调用该控件是不安全的。 以下非线程安全的调用的示例。 代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--privatevoidsetTextUnsafeBtn_Clic 阅读全文
摘要:
采用一个雷控件游戏进行中总结本次小程序方法 开始游戏 根据设置动态创建雷控件 触雷或点开所有非雷区游戏结束总结本次小程序有几个地方值得记录,也是写出这个程序的关键1.布雷 使用一个int型二维数组储存各个坐标下是否有雷的信息 private int[,] map;//1表示有雷 //布雷 将是否有雷的信息记录到map[,]中 private void BuildLeiqu(int x, int y, int mines) { map= new int[x, y]; for (int i = 0; i < x; i++) { for (int j = 0; j < y; j++) { 阅读全文