2017.12.20 点击旋转图片、鼠标滑入离开、C#中的反射

2017-12-21  本文已影响0人  胡諾

第一组:刘聪 点击旋转图片功能

点击图片实现逆时针旋转功能:
Html:


image.png

Model中存储了多张照片,通过遍历显示每张照片,绑定点击事件,并且传入事件和引索作为参数。
Js:


image.png

通过current[i]记录点击次数,改变rotate值,实现旋转。
效果:


image.png

该方法实现了简单的图片旋转功能,只要点击图片,图片就旋转90度。


第二组:徐晋 鼠标滑入离开及移动

Jquery中的mouseover,mouseout,mousemove方法:

mouseover,mouseout,mousemove的使用方法示例之图片提示:

代码:

<script>
   $(function () {
       var x = 10;
       var y = 20;
       $("a.tooltip").mouseover(function (e) {
           this.myTitle = this.title;
           this.title = "";
           var imageTitle = this.myTitle ? "<br/>" + this.myTitle : "";
           var tooltip = "<div id='tooltip'><img src='" + this.href + "' alt='预览图'>" + imageTitle + "</div>";
           $("body").append(tooltip);
           $("#tooltip").css({
               "top": (e.pageY + y) + "px",
               "left": (e.pageX + x) + "px"
           }).show("fast");
       }).mouseout(function () {
           this.title = this.myTitle;
           $("#tooltip").remove();
       }).mousemove(function (e) {
           $("#tooltip").css({
               "top": (e.pageY + y) + "px",
               "left": (e.pageX + x) + "px"
           });
       });
   })
</script>

实现效果:
鼠标滑入图片时显示图片的放大提示,并且提示可以跟随鼠标移动,鼠标离开图片时提示消失。

image.png

第三组:吴景霞 详解C#中的反射

两个现实中的例子:
  1. B超:大家体检的时候大概都做过B超吧,B超可以透过肚皮探测到你内脏的生理情况。这是如何做到的呢?B超是B型超声波,它可以透过肚皮通过向你体内发射B型超声波,当超声波遇到内脏壁的时候就会产生一定的“回音”反射,然后把“回音”进行处理就可以显示出内脏的情况了(我不是医生也不是声学专家,不知说得是否准确_)。

  2. 地球内部结构:地球的内部结构大体可以分为三层:地壳、地幔和地核。地壳是固体,地核是液体,地幔则是半液半固的结构(中学地理的内容,大家还记得吧?)。如何在地球表面不用深入地球内部就知道其内部的构造呢?对,向地球发射“地震波”,“地震波”分两种一种是“横波”,另一种是“纵波”。“横波”只能穿透固体,而“纵波”既可穿透固体又可以穿透液体。通过在地面对纵波和横波的反回情况,我们就可以大体断定地球内部的构造了。

大家注意到这两个例子的共同特点,就是从一个对象的外部去了解对象内部的构造,而且都是利用了波的反射功能。在.NET中的反射也可以实现从对象的外部来了解对象(或程序集)内部结构的功能,哪怕你不知道这个对象(或程序集)是个什么东西,另外.NET中的反射还可以运态创建出对象并执行它其中的方法。

反射是.NET中的重要机制,通过反射,可以在运行时获得程序或程序集中每一个类型(包括类、结构、委托、接口和枚举等)的成员和成员的信息。有了反射,即可对每一个类型了如指掌。另外我还可以直接创建对象,即使这个对象的类型在编译时还不知道。

反射的用途:

(1)使用Assembly定义和加载程序集,加载在程序集清单中列出模块,以及从此程序集中查找类型并创建该类型的实例。
(2)使用Module了解包含模块的程序集以及模块中的类等,还可以获取在模块上定义的所有全局方法或其他特定的非全局方法。
(3)使用ConstructorInfo了解构造函数的名称、参数、访问修饰符(如pulic 或private)和实现详细信息(如abstract或virtual)等。
(4)使用MethodInfo了解方法的名称、返回类型、参数、访问修饰符(如pulic 或private)和实现详细信息(如abstract或virtual)等。
(5)使用FiedInfo了解字段的名称、访问修饰符(如public或private)和实现详细信息(如static)等,并获取或设置字段值。
(6)使用EventInfo了解事件的名称、事件处理程序数据类型、自定义属性、声明类型和反射类型等,添加或移除事件处理程序。
(7)使用PropertyInfo了解属性的名称、数据类型、声明类型、反射类型和只读或可写状态等,获取或设置属性值。
(8)使用ParameterInfo了解参数的名称、数据类型、是输入参数还是输出参数,以及参数在方法签名中的位置等。

详情见下面链接:

详解C#中的反射

第四组:傅云 Jquery获取动态id

在没有触发点击事件,而是调用方法自动生成的input或其他相关属性(id,class,value等)时,使用此JS方法是获取不到的

document.getElementsByTagName("input")

这个时候可以起作用的是JQuery的find()方法

$('#div1').find("input");

第五组:王颢 DateTimePicker总结

在WinForm中经常会用到DateTimePicker这个控件,用这个控件获取时间会使用到Text属性或者Value属性。
关于这两个属性,还是存在着一些的不同,在这里简单的测试和总结一下。

首先看一下默认状态下的DateTimePicker控件

就是由含年、月、日三个值拼成的一个字符串表示一个日期的值。


image.png
1. 设置DateTimePicker控件显示的格式

这个控件有一个CustomFormat属性,这个属性可以用来控制控件值显示的日期格式。
在设置这个属性之前,需要将Format属性设置为Custom,表示使用自定义的格式。

CustomFormat的值有以下几种:
(1)不设置任何值:使用默认的显示格式,就是你电脑右下角时间的格式(不包含时分秒)


image.png
image.png

(2)使用自定义的值:这里的这个值是可以任意写的。。。。(不过瞎写没法获得时间)
比如:aaaaa

显示的就是 image.png

这里设置格式的方法可以说是匹配特定字符。 以下这些字符是具有特殊含义的字符:y、M、d、h、H、m、s(其他的暂时没有发现)。

y:代表年。
使用yyyy设置后会在控件中显示对应的年份。


image.png

(另外还可以y、yy、yyy这三种会有特殊的显示,不过我也没太弄明白显示的规律,都是由年份相关的值组成的一串字符,一般情况也没啥用)

M:代表月。
MM:代表由两个数字符号组成的月份 ,如1月显示 01,12月显示12。
M:也是代表月,但是这里小于10月均只显示1位,没有前置的0,其余的正常显示。例如:1月显示1,10显示10。

d:代表天或者星期几
dd:代表由两个数字符号组成的天 ,例如:1则显示 01,12显示12。
d: 一位数只显示一个值,没有前置的0,其余正常显示。1显示1,10显示10。

ddd:代表周几,显示是这样的 image.png dddd:这个代表的是星期几,显示式这个样子的 image.png

(微软考虑的真周到啊。。。。。)

这里要说一下超过4个以上的d,比如ddddddddddddd显示的依然是星期几,有没有上限不知道。那么如果要既显示日期有显示周几呢?很简单加上一个非d的字符放两个中间就行了。比如dd-dddd 显示的就是 image.png

h/H:都是代表小时,这里使用h是12时制,H是24小时制。(控件会对你输入的值作处理的,比如你使用了h,那么超过12的值会自动转换)
hh/HH:是两个字符组成小时,h/H是一个字符,和上边的M和d的规则是一样的。

m:代表分钟。m和mm的规则和区别和上边一致。
s:代表秒。s和ss的规则和区别也和上边一致。

目前发现的特殊字符就上边这些,使用这些字符的组合基本就可以完成所有日期的显示格式了,比如显示年月日时分秒 那么格式为:yyyy-MM-dd HH:mm:ss 对应显示的就是 image.png
2. 获取控件设置日期的两个方法及其区别

一般来说获取控件的日期(值)有两种方法,一种是使用Text属性,另一种是使用Value属性。这两个属性都可以做到,但是他们还是有一定区别的,简单的说一下。

  1. 首先是Text属性,它是获取或设置与当前控件关联的文本。这个意思就是DateTimePicker上显示的是什么,你获取到的就是什么。比如你显示的是a,那么Text属性的值就是a。而且Text属性使用ToString()这个方法的时候是不能传递表达格式的字符串做参数。所以想获得想要的时间格式就需要使用CustomForma这个属性设置想要的格式。

    控件显示: image.png
使用Text属性获得的: image.png
  1. 使用Value属性。它是获取或设置分配给控件的日期/时间值。这个值与设置的CustomForma属性的值没有任何关系,无论你设置什么格式,他获取的值就是一个固定格式。这个格式与你电脑设置的日期时间格式相同。

    控件显示: image.png
使用Value属性获得的: image.png

但是好处是这里在Value后的ToString()方法可以传递表达格式的字符串做参数。

比如:dateTimePicker1.Value.ToString("yyyy-MM-dd"),这个格式参数的字符的含义和上边的是一致的。

上一篇下一篇

猜你喜欢

热点阅读