[工作计划]学习情境4C程序设计.doc

上传人:音乐台 文档编号:1975962 上传时间:2019-01-27 格式:DOC 页数:50 大小:4.46MB
返回 下载 相关 举报
[工作计划]学习情境4C程序设计.doc_第1页
第1页 / 共50页
[工作计划]学习情境4C程序设计.doc_第2页
第2页 / 共50页
[工作计划]学习情境4C程序设计.doc_第3页
第3页 / 共50页
亲,该文档总共50页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《[工作计划]学习情境4C程序设计.doc》由会员分享,可在线阅读,更多相关《[工作计划]学习情境4C程序设计.doc(50页珍藏版)》请在三一文库上搜索。

1、 校本教材C#程序设计情境4学习情境四: Windows应用程序开发“注册窗口和多文档窗口的实现”学习领域C#程序设计总课时48学习情境Windows应用程序开发“注册窗口和多文档窗口的实现”参考课时15教学安排:第2学期学习任务: 创建Windows应用程序 Windows窗体中的基本控件Lable、Button、ListBox、ComboBox、TabControl、PictureBox的用法 MessageBox对象 Windows窗体中的高级控件ListView、TreeView的用法 创建SDI和MDI应用程序 菜单和工具栏应用 常见对话框的应用学习目标: 创建Windows应用程序

2、的步骤 Windows窗体中的基本控件的应用 Windows窗体中的高级控件ListView、TreeView的用法 创建SDI和MDI应用程序 菜单和工具栏应用 常见对话框的应用难点: Windows窗体中的高级控件ListView、TreeView的用法 多文档和单文档应用程序 快捷菜单的应用 状态栏的应用主要内容及标准:单项能力评价内容评价标准 Windows窗体中的常用控件的用法 消息框的应用 列表视图控件的应用 树视图控件的应用 多文档和单文档应用程序的应用 菜单和工具栏应用 状态栏的应用1. Windows窗体中的常用控件的用法和属性设置2. 使用MessageBox进行消息处理3

3、. 窗体中控件布局的技巧4. 树视图控件的应用5. 菜单提供将命令分组的方法,可以帮助用户快速访问。6. 工具栏包含工具按钮。可以对程序中常用的菜单命令提供快速访问7. 状态栏的使用8. 文件对话框的使用9. 字体对话框和颜色对话框的应用1熟练.Windows窗体中的常用控件的用法和属性设置2. MessageBox消息处理的各种用法3.熟练在窗体中对控件布局的技巧4.树视图控件在应用程序中的应用5.菜单提供将命令分组的方法,可以帮助用户快速访问。6.可以对程序中常用的菜单命令提供快速访问7.熟练运用状态栏显示在窗体的底部,并显示应用程序状态信息8.文件对话框使用9. 熟练设置应用字体和颜色教

4、学方法建议:讲述法 项目式教学法 任务教学法 实践操作法考核与评价:1.基本知识技能应用评价2.任务完成情况评价3.工作态度评价教学环境:微机、白板、投影仪、多媒体教学系统、多媒体课件、网络教学资源Win2000、IIS、Dreamweaver、Visual Studio 2005、Access、SQL Server教师需要的能力与知识: 对Windows窗体整体把握,对Windows窗体中控件布局设置 Windows窗体中的常用控件的用法和属性设置 使用MessageBox进行消息处理 窗体中控件布局的技巧 树视图控件的应用 菜单提供将命令分组的方法,可以帮助用户快速访问。 工具栏包含工具按

5、钮。可以对程序中常用的菜单命令提供快速访问 状态栏显示在窗体的底部,一般显示有关应用程序状态的信息 文件对话框可以帮助用户快速打开和保存文件 字体对话框和颜色对话框用于设置应用程序中需要的字体和颜色学生需要的能力与知识: Windows窗体中的常用控件的用法和属性设置 使用MessageBox进行消息处理 窗体中控件布局的技巧 树视图控件的应用 菜单提供将命令分组的方法,可以帮助用户快速访问。 工具栏包含工具按钮。可以对程序中常用的菜单命令提供快速访问 状态栏显示在窗体的底部,一般显示有关应用程序状态的信息 文件对话框可以帮助用户快速打开和保存文件 字体对话框和颜色对话框用于设置应用程序中需要

6、的字体和颜色学习情境四 Windows应用程序开发:“注册窗口和多文档窗口的实现”任务书1.任务设计通过学习Windows窗体应用程序的相关内容。事实上,我们每天都会接触到不同的Windows窗体,操作系统中”我的电脑”、”记事本”等,这些窗口有相似的特点,可以改变大小,可以在窗体上添加按钮和菜单等。Windows应用程序一般都由一个或多个窗体组成,这些窗体可包含文本框、按钮、列表框等控件,可以实现用户与应用程序交互。单文档和多文档应用程序的运用,Windows应用程序中菜单和工具栏的应用。本情境主要学习创建Windows应用程序的方法和实现Windows应用程序功能的基本控件。2任务准备开发

7、环境的配置:提供开发所需环境,包括Visual Studio 2005或isual Studio 2005,.NET Framework。3任务指导首先,将本情景的概念理解并熟练运用,理解Windows应用程序的文本框、按钮、列表框等控件,单文档和多文档应用程序的运用,Windows应用程序中菜单和工具栏的应用。最后完成实现“注册窗口和多文档窗口”的应用程序。4任务分配分角色进行,按组完成该项目。要求在项目中分为不同角色完成下列任务:(1) 完成总体设计任务要求完成项目规划设计(2) 完成概要设计任务要求完成项目目标、开发及运行环境的配置(3) 完成详细设计任务要求完成集成环境的面板配置,新项

8、目的创建,并测试功能。(4)实现“注册窗口和多文档窗口”的程序设计。学习情境四:Windows应用程序开发“注册窗口和多文档窗口的实现”前面学习的内容都是用命令行演示的,从现在学习Windows窗体应用程序的相关内容。Windows窗体应用程序也就是WinForms应用程序。事实上,我们每天都会接触到不同的Windows窗体,操作系统中我的电脑、记事本、听歌的软件窗口等,这些窗口有相似的特点,可以改变大小,可以在窗体上添加按钮和菜单等。Windows应用程序一般都由一个或多个窗体组成,这些窗体可包含文本框、按钮、列表框等控件,可以实现用户与应用程序交互。本情境主要学习创建Windows应用程序

9、的方法和实现Windows应用程序功能的基本控件。主要内容如下:l 创建Windows应用程序。l Windows窗体中的基本控件Lable、Button、ListBox、ComboBox、TabControl、PictureBox的用法。l MessageBox对象。l Windows窗体中的高级控件ListView、TreeView的用法。l 如何创建SDI和MDI应用程序。l 菜单和工具栏在Windows应用程序中的应用。l 如何使用各种常见对话框。l 对话框的模式。1 用C#创建Windows应用程序.NET Framework提供了Windows窗体和窗体中所需要的控件,使创建Win

10、dows应用程序变得非常简单,可以在编写极少量代码的情况下创建功能强大的应用程序。1.1 创建第一个Windows应用程序创建Windows应用程序的步骤如下:(1)选择“开始”“程序”“Microsoft Visual Studio 2005”命令,打开VS2005编译器。(2)选择“文件”“新建” “项目”选项。(3)项目类型选择“Visual C#”,模板选择“Windows窗口应用程序”。(4)选择文件存放位置,为项目命名,单击“确定”按钮,即可进入VS2005界面。 用Visual C#创建Windows应用程序项目时,会自动创建一个类名为Form的窗体。此时单击“调试”,即可运行程

11、序。效果如上图Windows应用程序的VS界面并不复杂,除了菜单栏、工具栏等通用的条目外,左边是“工具箱”面板,为Windows窗体应用程序开发提供强有力的工具。中间是“窗体设计器”,右边是“解决方案资源管理器”面板,下面是属性面板等。1.2 Windows应用程序的文件夹结构创建了Windows应用程序后,下面来看看Windows应用程序的文件夹结构。Windows应用程序的文件都由解决方案资源管理器统一管理,如下图所示。解决方案资源管理器中包含解决方案名称、项目名称和组成项目的文件。其中From1.cs是窗体文件,对窗体编写的代码都放到这个文件中,单击From1.cs文件前的加号,可以看到

12、From1.Designer.cs文件,此文件即为窗体设计文件,其中的代码是对窗体进行编辑时自动生成的,一般不需要修改。Program.cs文件是主程序文件,包含程序的入口函数Main(),该程序文件和Main()方法中的代码都是程序自动生成的,一般不需要修改。生成的代码如下:using System;using System.Collections.Generic;using System.Linq;using System.Windows.Forms;namespace Example_FormTest static class Program / / 应用程序的主入口点。 / STATh

13、read static void Main() Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new frmStudent(); 这段代码要关注的是Application.Run(new Form1()方法,Run方法运行窗体,方法中的参数指定运行的窗体类名。默认参数为New Form1(),即默认将Form1窗体作为首选运行的窗体,如果要改变程序的起始运行窗体,修改其中的参数即可。2 Windows窗体简介在 Windows For

14、ms 中,窗体是用于向用户显示信息的可视图面。如果把构建可视程序界面看作画图,那么窗体就类似于做图用的画布,在画布上可以添加你想绘制的任何图像。通过在窗体上放置控件,并开发对用户操作(如鼠标单击或按键)的响应来构建 Windows Forms 应用程序。2.1 窗体的属性在VS2005中,WinForms应用程序的窗体文件有两种编辑窗口,分别是窗体设计器和代码编辑窗口(如下图所示)。 窗体设计器窗口是进行可视化操作的窗口,使用鼠标进行窗体界面设计、控件拖放、设计窗体属性都可在此完成,不需要编写代码。WinForms中的窗体就是一个类,类中包括属性和方法。窗体重要属性如表所示:属 性说 明Nam

15、e窗体的名字Text窗体标题栏中显示的文本BackColor背景颜色FormBorderStyle窗体显示边框样式, 默认falseShowInTastBar确定窗体是否出现在Windows任务栏中,默认trueMaximizeBox确定窗体标题栏中是否现实最大化按钮,默认trueTopMost指示确窗体是否始终显示在该属性为false的窗体上,默认false窗体中的属性和普通类的属性是相同的,只是操作更方便,用可视化方式和代码编写方式都可实现。1、窗体的名称属性(Name)设置窗体名称的属性是Name, 该属性值主要用于在程序代码中引用窗体。在初始新建一个Windows应用程序项目时,自动创

16、建一个窗体,该窗体的名称被默认为Form1;添加第2个窗体,其名称被默认为Form2,依次类推。 2、窗体的标题属性(Text)Text属性用于设置窗体标题栏显示的内容,它的值是一个字符串。3、窗体的控制菜单属性(1) ControlBox属性:用来设置窗体上是否有控制菜单 (2) MaximizeBox属性:用于设置窗体上的最大化按钮 (3) MinimizeBox属性 :用于设置窗体上的最小化按钮4、影响窗体外观的属性(1)FormBorderStyle属性:用于控制窗体边界的类型,有7个可选值 。None、Fixed3D、FixedDialog、FixedSingle、 Sizable、

17、FixedToolWindow、SizableToolWindow。 (2)Size属性:用来设置窗体的大小。 (3)Location属性:设置窗体在屏幕上的位置,即设置窗体左上角的坐标值。(4)BackColor属性:用于设置窗体的背景颜色,可以从弹出的调色板中选择。 (5)BackgroundImage属性:用于设置窗体的背景图像。 (6)Opacity属性:该属性用来设置窗体的透明度,其值为100%时,窗体完全不透明;其值为0%时,窗体完全透明。2.2 窗体的重要事件上一情境学习了事件的概念和使用,了解了事件的运行机制,Windows编程技术都是建立在事件基础上的。在窗体和控件中,我们看

18、到很多事件,Windows应用程序就是通过对事件进行编码来实现具体功能。窗体的重要事件如下表所示。事 件说 明Load窗体加载时发生MouseClick鼠标单击事件,用户单击窗体时触发MouseDoubleClick鼠标单击事件,用户双击窗体时触发MouseMove鼠标移动事件,用户鼠标移动时触发KeyDown用户按下某键时触发KeyUp键盘释放事件,释放键时触发VS2005编写事件处理程序时,遵循以下步骤:1、 单击要创建事件处理程序的窗体和控件。2、 在属性窗口中单击“事件”按钮。3、 双击创建事件处理程序的事件。4、 打开事件处理的方法,编写处理代码。现在来编写单击窗体MouseClic

19、k事件的处理程序,当鼠标单击窗体时,在窗体的标题栏显示“我的第一个Windows程序”。程序编写步骤:1、 在窗体设计器窗口选中窗体。2、 在属性窗口单击“事件”按钮,打开事件选项卡。3、 选中MouseClick事件。4、 双击MouseClick事件右边的单元格,即可生成MouseClick事件处理程序方法。5、 在生成的事件处理程序方法中编写事件处理代码:private void frmstudent_mouseClick(object sender,MouseEventArgs e)this.text=”我的第一个Windows程序”;下面分析事件中的代码:l this和前面学过的用法

20、相同,代表当前对象,在窗体中使用时,即代表当前窗体对象。l Text是窗体的Text属性,将其值设置为“=”右面的字符串。l Sender是事件源,表示谁引发该事件,在此事件中,事件源就是窗体。l e代表鼠标事件参数3 Windows窗体中的常用控件.NET Framework提供了非常多的控件,以便能够快速开发专业的Windows应用程序。现通过“学生管理系统”项目来学习常用的控件。首先新建一个项目叫做StudentManage,项目中添加两个窗体,一个是登录界面,一个是注册界面,通过这两个窗体来学习窗体中的一些基本控件。登录界面如下图左所示,注册界面如下图右所示。学生登录窗口包括两个标签(

21、Label)、两个文本框(TextBox)、两个按钮(Button)控件。窗体的Text属性值设为“登录”,Name属性设为“frmLogin”,其它默认即可。学生注册窗口的设置在后面学习。下面学习控件的用法。3.1 标签(Lable)控件和超链接标签(LinkLable)控件标签(Lable)控件是最常用的控件,在任何Windows应用程序中都可以看到标签控件。标签控件用于显示用户不能编辑的文本或图像,常用于对窗体上各种控件进行标注或说明。上图“学生登录”窗口中的“用户名”和“密码”都是标签。工具箱中的标签控件如下图所示。在窗体中添加标签控件时,会创建一个Label类的实例。Label控件的

22、部分属性和方法如下表:属 性说 明Text该属性用于设置或获取与该控件关联的文本Image指定标签要显示的图象方 法说 明Hide隐藏控件,调用该方法时,即使 Visible 属性设置为 True,控件也不可见Show 相当于将控件的 Visible 属性设置为 True 并显示控件事 件说 明Click用户单击控件时将发生该事件设置“学生登录窗口”的属性后所产生的代码如下所示: #region Windows 窗体设计器生成的代码 / / 设计器支持所需的方法 - 不要使用代码编辑器修改此方法的内容。 / private void InitializeComponent() this.lbl

23、Name = new System.Windows.Forms.Label(); this.lbPwd = new System.Windows.Forms.Label(); / / lblName / this.lblName.AutoSize = true; this.lblName.Location = new System.Drawing.Point(56, 73); this.lblName.Name = lblName; this.lblName.Size = new System.Drawing.Size(41, 12); this.lblName.TabIndex = 0; t

24、his.lblName.Text = 用户名; / / lbPwd / this.lbPwd.AutoSize = true; this.lbPwd.Location = new System.Drawing.Point(58, 113); this.lbPwd.Name = lbPwd; this.lbPwd.Size = new System.Drawing.Size(29, 12); this.lbPwd.TabIndex = 1; this.lbPwd.Text = 密码;/ / frmLogin / this.AutoScaleDimensions = new System.Draw

25、ing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(292, 273); this.Controls.Add(this.lbPwd); this.Controls.Add(this.lblName); this.Name = frmLogin; this.Text = 登录; this.Load += new System.EventHandler(this.frmLogin_Load); this.

26、ResumeLayout(false); this.PerformLayout(); #endregion private System.Windows.Forms.Label lblName; private System.Windows.Forms.Label lbPwd;这些代码反映了窗体设计器中窗体和控件的属性。与Lable控件不同的是,超链接标签(LinkLable)除了具有Lable控件所有的属性、方法和事件外,该控件还可以在Windows应用程序中添加Web样式的超链接。下表列出了LinkLable部分属性和事件。属 性说 明LinkBehavior指定链接显示的行为,Alway

27、sUnderLine:始终显示带下划线的文本,HoverUnderLine:鼠标悬停在链接文本上时显示下划线,NeverUnderLine:从不带下划线,SystemDefault:系统默认值。LinkArea指定文本显示链接的部分LinkColor链接的颜色LinkVisited设置为True时,单击则会显示另外一种颜色Visited LinkColor设置访问过的链接显示的颜色3.2 文本框控件(TextBox)文本框(TextBox)的作用是实现程序与用户的交互,获取用户输入的信息或者向用户显示文本。文本框控件的主要属性和事件如下表所示。TextBox提供了三种样式的输入:单行、多行和密

28、码。输入内容比较多时,设置Multiline属性为True,可以调整TextBox宽度,实现多行输入。如果文本框的内容比较保密,设置PasswordChar属性为“*”,输入的内容就可以“*”显示。3.3 按钮控件(Button) 按钮(Button)控件几乎存在于所有的Windows对话框中,是Windows应用程序中最常用的控件之一。按钮控件允许用户通过单击来执行操作。按钮最重要的事件,也是最常用的事件就是Click。当用户单击按钮时,都会调研Click事件。按钮的主要属性和事件如下表:了解了按钮的属性和事件后,下面继续设计登录窗体。从工具箱拖放两个按钮到窗体,设置按钮属性。至此,登录窗口

29、已经设计完毕,添加代码完成用户登录功能。示例代码如下:private void btnlogin_Click(object sender, EventArgs e) if (this.txtName.Text = 小飞侠) & (this.txtPwd.Text = 1234) MessageBox.Show( 登录成功!); else MessageBox.Show( 用户名或密码错误); /清空文本框 this.txtName.Text = ; this.txtPwd.Text = ; 登录按钮事件中的代码实现的功能是,如果用户在txtName文本框中输入正确的用户名”小飞侠”,同时在tx

30、tPWD文本框中输入密码“1234”,单击“登录”按钮,窗体中显示登录成功。否则窗体中显示“用户名和密码错误”。不管是否登录成功,都要将文本框中输入的内容全部清空。登录和登录后窗口如下图所示。3.4 分组框控件(GroupBox)分组框(GroupBox)是对控件进行分组的控件,可以设置每个组的标题。分组框控件属于容器控件,一般不对该控件编码。Windows 窗体使用GroupBox 控件对控件分组的原因有三个:l 对相关窗体元素进行可视化分组以构造一个清晰的用户界面。l 创建编程分组(例如,单选按钮分组)。l 设计时将多个控件作为一个单元移动。分组框常用的属性只有Text,使用该属性修改分组

31、框中的标题。使用分组框创建一组控件的步骤如下:1、在窗体上绘制 GroupBox 控件。2、向分组框添加其他控件,在分组框内绘制各个控件。如果要将现有控件放到分组框中,可以选定所有这些控件,将它们剪切到剪贴板,选择 GroupBox 控件,再将它们粘贴到分组框中。也可以将它们拖到分组框中。3、将分组框的 Text 属性设置为适当标题。3.5 列表框(ListBox)列表框(ListBox)用来显示一组相关联的数据,用户可以从中选择一个或多个选项。ListBox中的数据可以在设计时填充,也可以在程序运行时填充。列表框(ListBox)中的每个元素称为“项”。列表框控件的常用属性、方法和事件如下表

32、所示.属 性说 明Items所有项SelectionMode 选择模式SelectedIndex 选中的索引号,从0开始Text当前选中项的文本SelectedItem选中的项SelectedItems所有被选中的项方 法说 明ClearSelected清除选中的选项事 件说 明SelectedIndexChanged选中时触发 通过视图方式添加ListBox中的项的步骤如下:1、 单击ListBox右上角的黑色三角箭头,打开任务列表。如下图2、 单击“编辑项”连接按钮,打开“字符串集合编辑器”窗口。3、 在集合编辑器中添加数据。 ListBox的数据即可以在视图中添加,也可以在程序中用代码添

33、加。下面的窗体加载的事件中为列表框lstDepart添加几个选择项,代码如下:Private void Form1_load(object sender, EventArgs e)This.lstDepart.items.Add(“信息技术系”);This.lstDepart.items.Add(“电子工程系”);This.lstDepart.items.Add(“数学系”);This.lstDepart.items.Add(“物理系”);如果在程序运行中移除某项,可以通过调用Remove或者RemoveAt方法来实现。假如现在从lstDepart中移除“数学系”,代码示例如下:this. L

34、stDepart.items.Remove(“数学系”);/直接移除项或this. LstDepart.items.RemoveAt(2); /通过索引移除注意:列表框中项的添加、删除、修改操作实际上是通过Items对象的属性、方法来实现的。3.6 组合框控件(ComboBox)Windows 窗体中的ComboBox 控件用于在下拉组合框中显示数据。组合框控件结合了文本框和列表框控件的特点,用户可以在组合框内输入文本,也可在列表中选择项目。组合框(ComboBox)控件几乎支持列表框控件的所有属性。组合框控件除了支持上面列表框控件的属性和方法,还有部分常用的属性和方法见表。属 性说 明Dro

35、pDownStyle ComboBox 控件的样式MaxDropDownItems 下拉区显示的最大项目数方 法说 明Select在 ComboBox 控件上选定指定范围的文本SelectAll选定该控件可编辑区域显示的所有文本通过视图方式添加ComboBox数据的方式和ListBox的基本相同。ComboBox控件也可在程序中添加数据,添加数据的代码如下:this.cboGrade.Items.Add(“S1”);ComboBox 控件可以通过索引指定选择项,示例代码中将索引为“1”的项设为选择项,代码如下:this.cboGrade.SelectedIndex=1;【问题:创建模拟字体,添

36、加向导Windows窗体应用程序,把示例表中的字体添加到用户表中。】分析:该问题需要一个窗口,用于显示示例表中字体和用户表字体。使用组合框,用户可以从中西文字体中选择一个表。列表框用来显示选定表的字体名称列表。要添加字体,用户要在列表框中选择一个字体,单击“添加”按钮,将其添加到用户列表框中。单击“移除”按钮,可将不需要的字体移除,也可全部添加,全部移除。实现步骤如下:1、新建项目,在窗体中添加控件。控件的属性设置如下:2、在组合框控件中添加“中文”、“西文”两项。 3、通过选择组合框中的不同的项,相应的“示例字体”显示在列表框中,实现此功能的方法如下:private void cboLang

37、uage_SelectedIndexChanged(object sender, EventArgs e) /初始化两个列表框,清空 this.lstSampleFont.Items.Clear(); this.lstNewFont.Items.Clear(); /如果组合框选择中文,将中文字体信息添加到列表框 if (String.Compare(this.cboLanguage.SelectedItem.ToString(), 中文) = 0) string custFields = 宋体, 楷体, 隶书, 黑体 ; for (int count = 0; count custFields

38、.Length; count+) this.lstSampleFont.Items.Add(custFieldscount); /如果组合框选择西文,将西文字体信息添加到列表框 if (String.Compare(this.cboLanguage.SelectedItem.ToString(), 西文) = 0) string custFields = Times New Roman, Arial, Arial Black ;for (int count = 0; count ”按钮,将字段添加到lstNewFont列表框中,单击“”按钮,将列表框lstSampleFont中的字段全部添加到

39、lstNewFond列表框中。双击“btnAdd”和”btnAddAll”按钮,可分别定位到该按钮的Click事件中,对此事件编写代码实现上述功能。事件代码如下:private void btnAddAll_Click(object sender, EventArgs e)/通过项索引添加项for (int count = 0; count this.lstSampleFont.Items.Count; count+)this.lstNewFont.Items.Add(this.lstSampleFont.Itemscount); private void btnAdd_Click(objec

40、t sender, EventArgs e)/通过选定项的索引添加项 for (int count = 0; count ”按钮,移除该列表框中选定的项。同样,所有的处理代码都要在按钮的Click事件中编写,示例代码如下: private void btnRemove_Click(object sender, EventArgs e) /移除选定的项 this.lstNewFont.Items.Remove(this.lstNewFont.SelectedItem); private void btnRemoveAll_Click(object sender, EventArgs e) this.lstNewFont.Items.Clear();/清除所有元素 6、单击“退出”按钮,退出应用程序。在btnExit按钮的Click事件中编写一下代码。 private void btnExit_Click(object sender, Event

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1