c#_winform基础学习.pdf

上传人:无*** 文档编号:90922132 上传时间:2023-05-18 格式:PDF 页数:94 大小:7.92MB
返回 下载 相关 举报
c#_winform基础学习.pdf_第1页
第1页 / 共94页
c#_winform基础学习.pdf_第2页
第2页 / 共94页
点击查看更多>>
资源描述

《c#_winform基础学习.pdf》由会员分享,可在线阅读,更多相关《c#_winform基础学习.pdf(94页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、一、C#基础类型和变量类型C#支持两种类型:“值类型”和“引用类型”。值类型包括简单类型(如c h a r、i n t和f l o a t等)、枚举类型和结构类型。引用类型包括类(C l a ss)类型、接口类型、委托类型和数组类型。变量的类型声明每个变量必须预先声明其类型。如int a;int b=100;float j=4.5;string s i;用 object可以表示所有的类型。预定义类型下表列出了预定义类型,并说明如何使用。类型说明示例范围object所有其他类型的最终基类型object o=null;string字符串类型;字符串是Unicode字符序列string s=hell

2、o”;sbyte8 位有符号整型sbyte val=12;-128 到 127short1 6 位有符号整型short val=12;-32,768 到 32,767int3 2 位有符号整型int val=12;-2,147,483,648 到2,147,483,647long6 4 位有符号整型long vail=12;long val2=34L;-9,223,372,036,854,775,808到9,223,372,036,854,775,807byte8 位无符号整型byte vail=12;0 至 Ij 255ushort1 6 位无符号整型ushort vail=12;0 到 6

3、5,535uint3 2 位无符号整型uint vail=12;uint val2=34U;0 到 4294,967,295ulong6 4 位无符号整型ulong vail=12;ulong va12=34U;ulong val3=56L;ulong val4=78UL;0到18,446,744,073,709,551,615float单精度浮点型float val=1.23F;7位1.5 x 10-45 到3.4 x 1038double双精度浮点型double vail=1.23;double val2=4.56D;15-16 5.0 X 10-324 到1.7 X IO308bool布

4、尔型:b o o l值或为真或为假bool val1 =true;bool val2=false;char字符类型;c h a r值是一个 Unicode字符char val=h;decimal精确的小数类型,具有2 8 个有效数字decimal val 二1.23M;28-291.0 X 10-28 到7.9 x 1028DateTime变量转换简单转换:float f=100.1234f;可以用括号转换:short s=(short)f也可以利用C o n ve r t方法来转换:string s i;si二 Convert.ToString(a);MessageBox.Show(si);

5、常用Convert方法有:C#备注Convert.ToBooleanC o n ve r t.T o B y t eC o n ve r t.T o C h a rC o n ve r t.T o D a t e T i m eC o n ve r t.T o D e c i m a lC o n ve r t.T o D o u b l eC o n ve r t.T o l n t l 6C o n ve r t.T o l n t 3 2C o n ve r t.T o l n t 6 4C o n ve r t.T o S B y t eC o n ve r t.T o S i n g

6、 l eC o n ve r t.T o S t r i n gC o n ve r t.T o U I n t l 6C o n ve r t.T o U I n t 3 2C o n ve r t.T o U I n t 6 4Math 类常用科学计算方法:at备注M a t h.A b s绝对值M a t h.S q r t开方M a t h.R o u n d取整,四舍五入M a t h.F l o o r取整,放弃小数M a t h.C o s余弦M a t h.S i n正弦M a t h.T a n正:切M a t h.E x p返回e的指定次暴M a t h.L o g对数M

7、a t h.P o w(x,y)数字x的 y次嘉M a t h.M a x (x,y)返回较大者M a t h.M i n(x,y)返回较小者枚举型一般为字符串,可以定义带数字的枚举型,示例为:enum Color(Red=l,Blue=2,Green=3)class Shape(public int Fill(Color color)(int i i;swi tch(col or)(case Color.Red:ii=10;break;case Color.Blue:break;case Color.Green:ii=12;break;default:ii=-l;break;return i

8、 i;)private void buttonl Click(object sender,System.EventArgs e)(int i;Shape si=new Shape();i=sl.Fill(Color)2);/i=sl.Fill(Color.Blue);MessageBox.Show(i.ToString 0);)Enum需要放在class外面,才能被其它class的程序调用。C#关键字a b st r a c t e ve n tn e wst r u c ta se x p l i c i t n u l lswi t c hb a see x t e r no b j e

9、c tt h i sb o o lf a l seo p e r a t o r t h r o wb r e a kf i n a l l yo u tt r u eb y t ef i x e do ve r r i d e t r yc a sef l o a tp a r a m st y p e o fc a t c hf o ep r i va t eu i n tc h a rf o c e a c hp r o t e c t e du l o n gc h e c k e dg o t op u b l i cu n c h e c k e dc l a ssi fr e a

10、 d o n l y u n sa f ec o n sti m p l i c i t r e fu sh o r tc o n t i n u e i nr e t u r nu si n gd e c i m a li n tsb y t evi r t u a ld e f a u l ti n t e r f a c e se a l e dvo l a t i l ed e l e g a t e i n t e r n a lsh o r tvo i dd oi ssi z c o fwh i l ed o u b l el o c kst a c k a l l o ce l

11、sel o n gst a t i ce n u mn a m e sp a c e st r i n g数组定义数组是一种排列有序的数据结构,包含于数组中的变量被称为数组的元素,它们都有相同的类型。数组声明i n t 口 a r r a y 1 =n e w i n t 5 ;i n t ,a r r a y 3 =n e w i n t 1 0,2 0,3 0 ;i n t 口 a r r a y 1 =n e w i n t口 1,2,4 ;数组引用a r r a y 1 0 =a l;注意,如果定义数组为i n t 5,则 从 04。数组长度l i n e O.G e t L e n

12、g t h(l)数组赋值可以从一个已经赋值的数组array2向未赋值的同等数组arrayl赋值,用array l=array2;这时,arrayl就变成和array2 一样的数组了。集合集合的使用集合可以看成是可以随意添加的数组,因此凡是在使用数组的场合,都可以使用集合。而且集合的元素可以是任意对象,操作也比数组灵活的多。使用集合时,必须注意集合的生命期问题。如果有两个集合L 1和 L 2,使用L1=L2;后,只 要 L 2 生命期没有终结,它的以后的变化就可能会影响到L 1 的数值。因此在赋值后应该及时销毁或者初始化L 2,以免发生不可预见的错误。比较使 用 Contains方法。Array

13、 Li st Array l=new ArrayList();Array l.Add(MasH);bool b l=Array 1 .Contains(,asn);MessageBox.Show(bl.ToStringO);找到集合中数量最多的一个元素利用方法来查找,可以返回两个变量。object J maxO(A r r ayL is t vll,r ef int jj)int i;object j0=0;A r r ayL is t yll=new A r r ayL is t 0 ;各个不同的元素的集合int y 1 2=new int vll.C ount;/记录各个元素数量的数组in

14、t xmax=0;最大的一个元素的数量for (i=0;i vll.C ount;i+)(jO=(object)vlli;if(yll.C ont ains(jO)(yl2 yll.I ndexO f(jO)+;)els e(yll.A dd(jO);y1 2 yll.C ount-1=1;)xmax=yl2 0;j0=(object)yll0;for (i=l;i xmax)(xmax=yl2 i;jO=(object)ylli;)jj=xmax;r et ur n jO;)pr ivat e void but t onl_C lick(object s ender,S ys t em.E

15、vent A r gs e)(A r r ayL is t A r r ayl=new A r r ayL is t();int jj=O;double j0=0;object jl=0;j0=2.3;A r r ay 1.A dd(jO);j0=2.3;A r r ay 1.A dd(jO);jO=l.O O O f;A r r ay 1.A dd(jO);j0=2.3;A r r ay 1.A dd(jO);jO=l;A r r ay 1.A dd(jO);jl=J maxO(A r r ay1,r ef jj);M es s ageB ox.S how(jl.T oS t r ingO

16、+z,+j j.T oS t r ingO);)运算符和判断判断if(x 10)if(y20)Console.Write(,Statement_r,);elseConsole.Write(uStatement_2n);关系运算符,=等于:_不等于:!=判断字符串string和 char用 Equals方法。逻辑运算符与:a&b或:a|b非:!A模数运算符模数运算符()计算第二个操作数除第一个操作数后的余数。所有数值类型都具有预定义的模数运算符。如Console.WriteLine(5%2);/=1Console.WriteLine(-5%2);/=-1Console.WriteLine(5.0

17、%2.2);/=0.6Console.WriteLine(-5.2%2.0);/=-1.2经常用模数运算符来判断整数为奇数(=1)或偶数(=0)。循环无条件循环int sum,x;sum=0;fo r(x=l;x=100;x+)(sum+=x;有条件循环private void buttonl_Click(object sender,System.EventArgs e)(int sum=0;int x=0;while(sum100)&(x20)(x+;sum+=x;)string s2=Convert.ToString(x);MessageBox.Show(s2);运行显示14o如果改为wh

18、ile(sum100)|(x20)运行显示20。多重选择switch(i)case 0:CaseZero();break;case 1:CaseOne();break;default:CaseOthers();break;)每个case后面,必须有break或者g o to,不允许贯穿。Gotogoto语句将程序控制直接传递给标记语句。for(int i=0;i x;i+)for(intj=0;jOKCancel RetryCancel YesNo、YesNoCancelo获取返回信息p r i v a t e v o i d b u t t o n 2 _Cl i c k(o b j e c

19、 t s e n d e r,Sy s t e m.Ev e n t Ar g s e)(Di a l o g Re s u l t r e s u l t;r e s u l t =Me s s a g e Bo x.Sh o w(n a m e ,Na m e En t r y”,Me s s a g e Bo x Bu t t o n s.Ye s No,Me s s a g e B o x Ic o n.Qu e s t i o n);Me s s a g e B o x.Sh o w (re s u l t.To St ri n g 0);)如果要参与判断,则用s t ri n g

20、l s=re s u l t.To St ri n g();完全使用方法本例检查textBoxl中输入文本没有,如果没有就提示,并可以获取返回信息。p ri v a t e v o i d b u t t o n l _ C l i c k(o b j e c t s e n d e r,Sy s t e m.Ev e n t A rg s e)(i f(t e x t B o x l.Te x t.Le n g t h =0)(s t ri n g m e s s a g e =Y o u d i d n o t e n t e r a s e rv e r n a m e.C a n c

21、e l t h i s o p e ra t i o n?”;s t ri n g c a p t i o n =No Se rv e r Na m e Sp e c i f i e d”;Me s s a g e B o x B u t t o n s b u t t o n s =Me s s a g e B o x B u t t o n s.Y e s No;Di a l o g Re s u l t re s u l t;re s u l t =Me s s a g e B o x.Sh o w(t h i s,m e s s a g e,c a p t i o n,b u t t

22、o n s,Me s s a g e B o x Ic o n.Qu e s t i o n,Me s s a g e B o x De f a u l t B u t t o n.B u t t o n l,Me s s a g e B o x Op t i o n s.Ri g h t A l i g n);i f(re s u l t =Di a l o g Re s u l t.Y e s)t h i s.C l o s e ();文本框基本功能文本框主要是用来输入和显示文字的。添 加,个TextBox,系统自己产生名字textBoxl,程序如下:p ri v a t e v o i

23、d b u t t o n 1 _ C 1 i c k(o b j e c t s e n d e r,Sy s t e m.Ev e n t A rg s e)(Me s s a g e B o x.Sh o w(t e x t B o x l.Te x t);运行时,就可以在消息框中显示文本框输入的字符串。TextBox一般显示单行,如果把属性Multiline改为Ture,还可以显示多行数字。输入数字输入数字需要转换:i n t a;s t ri n g s i;a=C o n v e rt.To Tn t 1 6(t e x t B o x l.Te x t);a=a+5;s l=C

24、o n v e rt.To St ri n g(a);Me s s a g e B o x.Sh o w(s i);初始化文本框的初始化就是向文本框赋初始值。可以从事件过程里写入,也可以在IDE的右边属性栏里输入,但是推荐采用在Form初始化时写入。p u b l i c Fo rm l()(In i t i a l i z e C o m p o n e n t O;/TODO:在In i t i a 1 i z e C o m p o n e n t调用后添加任何构造函数代码t e x t B o x l.Te x t=”:)窗体调用简单调用上面的例子都是在个窗体中,实际程序需要儿十甚至上

25、百个窗体。以下例子创建两个窗体,然后实现相互调用。在Forml中添加两个Button,一个标题为调用,一个标题为退出。使 用【项目】/【添加窗体工添加一个窗体,缺省名称为Form2。添加一个Button,标题为返回。窗 体1程序为:p ri v a t e v o i d b u t t o n l _ C l i c k(o b j e c t s e n d e r,Sy s t e m.Ev e n t A rg s e)(Fo rm 2 Nf o rm 2=n e w Fo rm 2 ();Nf o rm 2.Sh o w();t h i s.Hi d e O;)p ri v a t

26、e v o i d b u t t o n 2 _ C 1 i c k(o b j e c t s e n d e r,Sy s t e m.Ev e n t A rg s e)(A p p l i c a t i o n.Ex i t ();)窗体2程序为:p ri v a t e v o i d b u t t o n l _ C l i c k(o b j e c t s e n d e r,Sy s t e m.Ev e n t A rg s e)(Fo rm l Nf o rm l=n e w Fo rm l();Nf o rm l.Sh o w();t h i s.Hi d e 0

27、 ;)运行程序,可以在两个窗体之间来回调用,按“退出”就可以退出程序。程序运行时,如果发现窗体位置不固定,这时需要在窗体的StartPosition属性上设置窗体固定位置,一般为屏幕中央。注意,两个窗体要在一个命名空间,否则要引用。传递参数调用在Form l中添加一个Button 1和一个textB oxl,程序为:p ri v a t e Fo rm 2 o t h e rFo rm=n e w Fo rm 2();p ri v a t e v o i d Ge t Ot h e rFo rm Te x t B o x()(t e x t B o x l.Te x t =o t h e rF

28、o rm.Te x t B o x l.Te x t;)p ri v a t e v o i d b u t t o n l C l i c k (o b j e c t s e n d e r,Sy s t e m.Ev e n t A rg s e)(Ge t Ot h e rFo rm Te x t B o x();)在Form2中添加一个textBoxl,在In i t i a l i z e C o m p o n e n t O;后面添加一个赋值语句为:t e x t B o x l.Te x t=a b d ;然后添加一个属性:p u b l i c Te x t B o x T

29、e x t B o x l(g e t(re t u rn t e x t B o x l;)运行时,点击F orm l中的Buttonl,可.以把Form 2的TextBox的数值取到Forml 的 TextBox 中来。复杂传递参数本例是移动一个标签,在两个Form之间来回移动。先设计Form 1如下:设计Form 2,除了少了一个退出按钮外,其余相同。在 Forml的InitializeComponent。下面加上窗体定位语句:Point tempPoint 二 new Point(100,100);this.DesktopLocation=tempPoint;然后把Forml的Star

30、tPosition属性改为Manual 其余程序为:public Label L2(get(return label1;)set(labell=value;private void button2_Click(object sender,System.EventArgs e)Fo rm 2 o t h e rFo rm=n e w Fo rm 2();l a b e l l.Le f t=l a b e l l.Le f t+1 0;i f (l a b e l l.Le f t =t h i s.Wi d th-10)(oth e r F or m.S h ow();oth e r F or

31、 m.L I.T op=l a be l 1.T op;th i s.H i d e O;p r i va te voi d button l Cl i c k (obj e c t s e n d e r,S y s te m.E ve n tAr g s e)(l a be l l.L e f t=l a be l l.L e f t-10;)p r i va te voi d button 3 _ Cl i c k(obj e c t s e n d e r,S y s te m.E ve n tAr g s e)l a be l l.T op=l a be l 1.T op-10;)p

32、 r i va te voi d button 4 Cl i c k (obj e c t s e n d e r,S y s te m.E ve n tAr g s e)(l a be l l.T op=l a be l l.T op+10;)p r i va te voi d button 5 _ Cl i c k(obj e c t s e n d e r,S y s te m.E ve n tAr g s e)(Ap p l i c a ti on.E x i t();)同样在Form2的InitializeComponent。下面加上窗体定位语句:Poi n t te m p Poi

33、 n t=n e w Poi n t(3 00,100);th i s.D e s k top L oc a ti on =te m p Poi n t;然后把Form2的StartPosition属性改为Manual0 其余程序为:p ubl i c L a be l L I(g e t(r e tur n l a be l l;)s e tl a be l l=va l ue;)p r i va te voi d button 2 _ Cl i c k(obj e c t s e n d e r,S y s te m.E ve n tAr g s e)(l a be l l.L e f t

34、=l a be l l.L e f t+10;)p r i va te voi d button!Cl i c k (obj e c t s e n d e r,S y s te m.E ve n tAr g s e)(F or m l oth e r F or m l=n e w F or m l();l a be l l.L e f t=l a be l l.L e f t-10;i f (l a be l l.L e f t=-10)(oth e r F or m l.S h ow();oth e r F or m l.L 2.T op=l a be l l.T op;oth e r F

35、 or m l.L 2.L e f t=oth e r F or m l.Wi d th-2 0;th i s.H i d e();)p r i va te voi d button 3 _ Cl i c k(obj e c t s e n d e r,S y s te m.E ve n tAr g s e)(l a be l l.T op=l a be l l.T op-10;)p r i va te voi d button 4 Cl i c k (obj e c t s e n d e r,S y s te m.E ve n tAr g s e)(l a be l l.T op=l a

36、be l l.T op+10;)动态产生窗体p ubl i c voi d Cr e a te M y F or m()(F or m f or m l =n e w F or m O;L a be l l a be l l =n e w L a be l();Button button l =n e w Button ();T e x tBox te x tl =n e w T e x tBox O;button l.T e x t=确定;button l.L oc a ti on =n e w Poi n t(110,2 2 0);l a be l l.L oc a ti on =n e

37、w Poi n t(5 0,100);te x tl.L oc a ti on =n e w Poi n t(15 0,100);f or m l.T e x t=请输入”;l a be l 1.T e x t=数据;f or m l.F or m Bor d e r S ty l e =F or m Bor d e r S ty l e.F i x e d D i a l og;f or m l.Con tr ol Box =f a l s e;f or m l.Ca n c e l Button =button l;f or m l.S ta r tPos i ti on =F or m

38、S ta r tPos i ti on.Ce n te r S c r e e n;f or m l.Con tr ol s.Ad d(button l);f or m l.Con tr ol s.Ad d(te x tl);f or m l.Con tr ol s.Ad d (l a be l 1);f or m l.S h owD i a l og O;l s=te x tl.T e x t;)p r i va te voi d button?Cl i c k (obj e c t s e n d e r,S y s te m.E ve n tAr g s e)(Cr e a te M y

39、 F or m O;M e s s a g e Box.S h ow(I s);)ToolBar普通使用在窗体上加上ToolBar界面修改后的问题在界面上修改后,最后要加上:tool Ba r l.Button s.Ad d(tool Ba r Button l);tool Ba r l.Button s.Ad d(tool Ba r Button 2);tool Ba r l.Button s.Ad d(tool Ba r Button 3);/Ad d th e e ve n t-h a n d l e r d e l e g a te.tool Ba r l.Button Cl i c

40、k +=n e w(th i s.tool Ba r l Button Cl i c k);或者把原有的程序T ool Ba r Button Cl i c k E ve n tH a n d l e rth i s.tool Ba r l.Button s.Ad d Ra n g e(n e w S y s te m.Wi n d ows.F or m s.T ool Ba r Button th i s.tool Ba r Button l,th i s.tool Ba r Button 2,th i s.tool Ba r Button 3 );改变位置,至!J toolBarl设置的最

41、下面。全部设置程序为:th i s.tool Ba r l.D r op D own Ar r ows =tr ue;th i s.tool Ba r l.L oc a ti on =n e w S y s te m.D r a wi n g.Poi n t(0,0);th i s.tool Ba r l.N a m e =tool Ba r l”;th i s.tool Ba r l.S h owT ool T i p s =tr ue;th i s.tool Ba r l.S i z e =n e w S y s te m.D r a wi n g.S i z e(5 9 2,4 2);t

42、h i s.tool Ba r l.T a bl n d e x =0;tool Ba r l.Button S i z e =n e w S y s te m.D r a wi n g.S i z e (6 0,5 0);/tool Ba r Button l/th i s.tool Ba r Button l.T e x t=Op e n;tool Ba r Button l.S ty l e =S y s te m.Wi n d ows.F or m s.T ool Ba r Button S ty l e.T og g l e Button;/tool Ba r Button 2/th

43、 i s.tool Ba r Button 2.T e x t=S a ve;tool Ba r Button 2.S ty l e =S y s te m.Wi n d ows.F or m s.T ool Ba r Button S ty l e.T og g l e Button;/tool Ba r Button 3/th i s.tool Ba r Button 3.T e x t=Pr i n t”;tool Ba r l.Button s.Ad d(tool Ba r Button l);tool Ba r l.Button s.Ad d(tool Ba r Button 2);

44、tool Ba r l.Button s.Ad d(tool Ba r Button 3);tool Ba r l.Button Cl i c k +=n e w T ooI Ba r Bu11on C1i c k E ve n tH a n d 1e r(th i s.tool Ba r l Button Cl i c k);设置按钮大小如下设置,可以正常居中显示9号字体。tool Ba r l.Button S i z e =n e w S y s te m.D r a wi n g.S i z e(6 0,5 0);用程序实现可以用程序实现按钮的增加,但是无法全部实现自动化。先 需 要

45、手 工 添 加toolBarl和imageListl,然 后 把imageListl中的图片 一 加ovoid toolBarSet()(添加按钮ToolBarButton toolBarButtonl=new ToolBarButton();ToolBarButton toolBarButton2=new ToolBarButton();toolBarl.Buttons.AddRange(newSystem.Windows.Forms.ToolBarButton toolBarButtonl,toolBarButton2);toolBarl.DropDownArrows=true;toolB

46、arl.ImageL ist=imageL istl;toolBarl.Size=new System.Drawing.Size(408,37);toolBarl.Tabindex=0;toolBarl.ButtonClick+二 newSystem.Windows.Forms.ToolBarButtonClickEventHandler(toolBarl_ButtonClick);/toolBarButton1toolBarButtonl.Imageindex=0;toolBarButtonl.ToolTipText=放大;/toolBarButton2toolBarButton2.Imag

47、eindex=1;toolBarButton2.ToolTipText=缩小;private void Forml L oad(object sender,System.EventArgs e)(toolBarSet();)private void toolBarl_ButtonClick(object sender,System.Windows.Forms.ToolBarButtonClickEventArgs e)(switch(toolBarl.Buttons.IndexOf(e.Button)(case 0:放大MessageBox.Show(放大);break;case 1:缩小Me

48、ssageBox.Show(缩小);break;default:MessageBox.Show(other);break;)listBox普通调用在窗体上放置一个listBox 1,一个button 1和一个label 1 o以下程序实现添加选项,双击选项就可以显示你的选择:p r i va te voi d button l _ Cl i c k(obj e c t s e n d e r,S y s te m.E ve n tAr g s e)(l i s tBox l.I te m s.Cl e a r ();l i s tBox l.I te m s.Ad d(,z);l i s tB

49、ox l.I te m s.Ad d(选择 1”);l i s tBox l.I te m s.Ad d(“选择2);l i s tBox l.S e l e c te d I n d e x=O;p r i va te voi d l i s tBox l _ D oubl e Cl i c k(obj e c t s e n d e r,S y s te m.E ve n tAr g s e)L a be l 1.T e x t=l i s tBox l.S e l e c te d l n d e x.T oS tr i n g 0;)第一项是一个缺省空项,允许用户不选取退出。Items

50、是一个集合,因此增减选项可以按照集合那样操作。用数组添加选项System.Object ItemObject=new System.Object10;fbr(int i=0;i=9;i+)ItemObjecti=Item+i;listBox 1 .Items.AddRange(ItemObject);ScrollBar基本定义ScrollBar是滚动条控件,分成HScrollBar(水平)和VScrollBar(垂直)两种。有些控件如ListBox,TextBox等可以自动添加滚动条,但是有些控件则需要用程序添加。主要属性意义为:Value:滚动条的数值,反映当前移动块的位置。初始值设定后,运

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁