水晶报表可以由很多的方法得到,其中一个就是使用vs.net来创建,它提供了非常丰富模型以使我们能够在运行时操作属性和方法。如果你正在使用vs.net开发.net程序,那么你就不需要再安装其它软件了,因为他已经内嵌在vs.net中了。执行模式 水晶报表取数据可以使用下面的方法实现: pull 模式: 被请求时,水晶报表直接根据指定的驱动连接数据库然后组装这些数据。 push 模式 : 此时开发表不得不自己编写代码连接数据并组装dataset,同时将它传送至报表。在些这种情况下,通过使用连接共享以及限制记录集合的大小,可以使用报表性能最大化。 报表类型: 水晶报表设计器能够直接包含报表至工程也能够使用独立的报表对象。 strongly-typed 报表 : 当你将报表文件加入到项目中去时,它就变成了一个了“ strongly-typed“报表。在这些情况下,你将拥有直接创建报表的对象的权力,这将减少一些代码并且能够提供一些性能。 un-typed 报表 : 这里的报表并不直接包含在项目中,因此称为‘un-typed’ 报表。在这种情况下,你不得不使用水晶报表的”reportdocuemt“对象建立一个实例,并且”手动“地凋用报表。 其它注意事项 尽管水晶报表查看器拥有一些很酷的功能,如缩放、页面导航等。但是他不提供打印功能,你不得不调用游览器的打印功能。 vs.net中的水晶报表如果没有注册,那么它只能使用30次,30次后,”保存“功能就不能再使用了。为了避免这个,你不是不在 这里注册此产品。 (好像不是这样子的,不注册也好像能用很长的时间,只是不能提供支持) 默认安装的水晶报表只能支持5个用户,为了支持更多的用户,你不得不在 中购买许可证。 让我们感受一下---在asp.net中使用一个现成的水晶报表文件 让我们先感受一下在webform中使用水晶报表的感觉。 1) 从webform工具栏中拖动水晶报表查看器控件(crystal report viewer)至.aspx页面中。2) 调出水晶报表查看器控件的属性窗口 3) 点击[...]按钮查看"data binding"属性,并弹出了databinding窗口。4) 从左边的"bindable属性”区中选择“report source”5) 选中"自定义绑定表达式"单选按钮,在右边的底部的窗口中指定.rpt文件的文件名和路径,例如:"c:\\program files\\microsoft visual studio.net\\crystal reports\\samples\\reports\\general business\\world sales report.rpt",然后”确定“ 注意:文件”world sales report.rpt“文件是在vs.net安装时创建的。如果你在安装过程中指定了其它目录,此时你最好确认一下路径的正确性。 上面的步骤中实际上是插入了下面这些代码至asp.net文件中: <%@ register tagprefix="cr" namespace="crystaldecisions.web" assembly="crystaldecisions.web" %> 以及: <cr:crystalreportviewer> id="crystalreportviewer1" runat="server" width="350px" height="50px" reportsource=' <%# "c:\\program files\\microsoft visual studio.net\\crystal reports\\samples\\reports\\general business\\world sales report.rpt" %>'> </cr:crystalreportviewer> 注意:在飞刀我的vs.net正式版中自动生成的代码中reportsource产生的样式不是这样子的,它是: reportsource=" <%# c:\xxx\xxx.rpt %>" 这样是错误的,会出现错误信息,有两处错误: databind中要有双引号,因此外部只能用单引号 目录分隔符号不能使用"\",必须使用"\\" 必须按照使用本文介绍的格式来手动修改,这也算是vs.net的一个bug吧。 6) 在page_load方法中调用databind方法。(代码为vb.net) private sub page_load(byval sender as system.object, byval e as system.eventargs) databind() end sub 7)保存并编译你的页面。 现在,你就有一个内嵌水晶报表的webform页面了。
10年的滨海新区网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整滨海新区建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联公司从事“滨海新区网站设计”,“滨海新区网站推广”以来,每个客户项目都认真落实执行。
窗口边框(FormBorderStyle)设为None,窗口(WindowState)设为Maximized,如果想让窗口背景透明,将窗口背景颜色和TransparencyKey设为同一种颜色,按钮用Label(标签)代替,背景设为Transparent,边框设为None,文字位置一般是下中,Label控件支持无边框。
动感效果在鼠标事件(MouseDown按下,MouseUp抬起,MouseEnter进入,MouseLeave离开)更换指定的图片;
添加timer控件还可以使用动画
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Me.Label1.Refresh()
End Sub
快捷键用热键
RegisterHotKey
函数功能:该函数定义一个系统范围的热键。
函数原型:BOOL RegisterHotKey(HWND hWnd,intid,UINT fsModifiers,UINT vk);
参数:
hWnd:接收热键产生WM_HOTKEY消息的窗口句柄。若该参数NULL,传递给调用线程的WM_HOTKEY消息必须在消息循环中中进行处理。
id:定义热键的标识符。调用线程中的其他热键不能使用同样的标识符。应用功能程序必须定义一个0X0000-0xBFFF范围的值。一个共享的动态链接库(DLL)必须定义一个0xC000-0xFFFF范围的值伯GlobalAddAtom函数返回该范围)。为了避免与其他动态链接库定义的热键冲突,一个DLL必须使用GlobalAddAtom函数获得热键的标识符。
fsModifoers:定义为了产生WM_HOTKEY消息而必须与由nVirtKey参数定义的键一起按下的键。该参数可以是如下值的组合:
MOD_ALT:按下的可以是任一Alt键。MOD_CONTROL:按下的可以是任一Ctrl键。
MOD_SHIFT:按下的可以是任一Shift键。
MOD_WIN:按下的可以是任一Windows按键。
vk:定义热键的虚拟键码。
返回值:若函数调用成功,返回一个非O值。若函数调用失败,则返回值为0。若要获得更多的错误信息,可以调用GetLastError函数。
备注:当某键被接下时,系统在所有的热键中寻找匹配者。一旦找到一个匹配的热键,系统将把WM_HOTKEY消息传递给登记了该热键的线程的消息队列。该消息被传送到队列头部,因此它将在下一轮消息循环中被移去。该函数不能将热键同其他线程创建的窗口关联起来。
若为一热键定义的击键己被其他热键所定义,则RegisterHotKey函数调用失败。
若hWnd参数标识的窗口已用与id参数定义的相同的标识符登记了一个热键,则参数fsModifiers和vk的新值将替代这些参数先前定义的值。
若设置MOD_KEYUP位,则当发生键被按下或被弹起的事件时,窗口将发送WM_HOTKEY消息。
RegisterHotKey可以被用来在线程之间登记热键。
UnregisterHotKey
函数功能:该函数释放调用线程先前登记的热键。
函数原型:BOOL UnregisterHotKey(HWND hWnd,int id);
参数:
hWnd:与被释放的热键相关的窗口句柄。若热键不与窗口相关,则该参数为NULL。
id:定义被释放的热键的标识符。
返回值:若函数调用成功,返回值不为0。若函数调用失败,返回值为0。若要获得更多的错误信息,可以调用GetLastError函数。
1、首先定义所需要用到的常量
如图所示,在窗体代码后定义常量和API函数
代码如下:
Public Const WM_HOTKEY As Integer = H312
Public Const MOD_ALT As Integer = H1
Public Const MOD_CONTROL As Integer = H2
Public Const MOD_SHIFT As Integer = H4
Public Const GWL_WNDPROC As Integer = (-4)
Public Declare Auto Function RegisterHotKey Lib "user32.dll" Alias "RegisterHotKey" (ByVal hwnd As IntPtr, ByVal id As Integer, ByVal fsModifiers As Integer, ByVal vk As Integer) As Boolean
Public Declare Auto Function UnRegisterHotKey Lib "user32.dll" Alias "UnregisterHotKey" (ByVal hwnd As IntPtr, ByVal id As Integer) As Boolean
下面过程是注册Ctrl+T的组合键为组合键,假如注册成功,则返回true,反之注册失败则返回false,我们可以根据返回的结果判断并提醒用户注册的情况。
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim isResult As Boolean
isResult=RegisterHotKey(Handle, 0, MOD_CONTROL, Asc("T")) ’注册Ctrl+T的组合键
If isResult = False Then
MsgBox("注册热键Ctrl+T失败")
End If
End Sub
[apge]
下面过程为重载WndProc过程,响应热键并处理热键,这里是用来隐藏和显示程序主界面。
Protected Overrides Sub WndProc(ByRef m As Message)
If m.Msg = WM_HOTKEY Then
System.Diagnostics.Process.Start("C:\WINDOWS\system32\freecell.exe")'运行当空接龙游戏
End If
MyBase.WndProc(m)
End Sub
最后在关闭窗体的时候释放占用的热键,如果前面注册失败的话,则会出现释放失败的结果。
Private Sub Form1_Closed(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Closed
Dim isResult As Boolean
isResult=UnRegisterHotKey(Handle, 0)
End Sub
双击打开指定的程序
Private Sub Label1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Label1.DoubleClick
System.Diagnostics.Process.Start("C:\WINDOWS\system32\freecell.exe")
End Sub
System.Diagnostics.Process.Start("路径")打开指定程序
先列出这些吧
用背景图片替换试试,图片用PS设置成透明
不行的话 用其他控件 自有文本的
反正按钮一般就是点击事件
那你就添加点击事件就好了
基本思路是在按钮的 MouseMove 事件中检测鼠标左键的状态,如果是按下就跟着移动按钮的位置。