C#项目开发全程实录(第4版)
上QQ阅读APP看书,第一时间看更新

1.10 房源状态查询模块设计

视频讲解

1.10.1 房源状态查询模块概述

房源状态查询窗体主要完成房源状态的查看,同时提供预订和取消预订的功能。房源状态以图标形式显示,灵活地运用了ListView控件的View属性。使用这种方式显示房源状态,为操作人员提供了更方便的查看方式,并且该模块还为客户提供了预约和取消预约房源的机会,从而留给客户更多的思考空间,又一次体现出本系统人性化的设计思想。房屋状态查询窗体如图1.28所示。

图1.28 房源状态查询窗体

1.10.2 房源状态查询模块技术分析

在房源状态查询窗体中,使用ListView控件来显示房源的状态,对于不同状态的房源(如已租、未租、预订),ListView控件会显示不同的图标,这样就使查看房源状态更方便。另外,ListView控件还可以显示多种视图模式,这样就使得数据项的查看方式更加丰富,下面将介绍如何为ListView控件添加图标。

1.ListView的图像列表属性和视图模式

ListView控件有3个图像列表属性,即LargeImageList、SmallImageList和StateImageList。List视图模式、Details视图模式、SmallIcon视图模式将显示SmallImageList属性所指定的图像列表中的图像。LargeIcon视图模式、Tile视图将显示LargeImageList属性所指定的图像列表中的图像。列表视图还可以在大图标或小图标旁显示StateImageList属性中设置的一组附加图标。

2.通过编写代码为ListView控件添加图标

首先在ImageList控件中添加图标,然后将ListView控件的某个图像列表属性(如SmallImageList属性)设置为ImageList控件的实例,最后设置ListView控件的视图模式(如View.Details模式)。例如,下面的代码实现向ListView控件添加图标。

3.通过属性窗口设置ListView控件的图标

除了通过编码可以实现为ListView控件添加图标外,还可以通过在ListView控件的属性窗口中设置相关属性来实现添加图标,具体步骤如下:

(1)设置ListView控件的View属性为某种视图模式(Details、List、Tile等)。

(2)根据上面设置的视图模式,将ListView控件的相应图像列表属性(SmallImageList、LargeImageList或StateImageList)设置为想要使用的现有ImageList控件。

(3)为每个具有关联图标的列表项设置ImageIndex属性或StateImageIndex属性,这个设置可以在“ListViewItem集合编辑器”中进行(在ListView控件的“属性”窗口中,单击Items属性旁的“…”按钮,可以打开“ListViewItem集合编辑器”)。

1.10.3 房源状态查询模块实现过程

 本模块使用的数据表:tb_house、tb_User

房源状态查询模块的具体实现步骤如下。

(1)新建一个Windows窗体,命名为frmStateHouse.cs,用于查看房屋状态、预订和取消预定房屋。该窗体主要用到的控件及属性设置如表1.12所示。

表1.12 房源状态查询窗体主要用到的控件

(2)声明局部变量和公共类ClsCon的对象,通过ClsCon的对象调用类中的方法,实现数据库连接,代码如下:

例程26 代码位置:资源包\TM\01\houseAgency\SeekTenantsM\frmStateHouse.cs

在frmStateHouse窗体的Load事件中,进行数据绑定,以显示房源状态相关信息。frmStateHouse窗体的Load事件实现代码如下:

例程27 代码位置:资源包\TM\01\houseAgency\SeekTenantsM\frmStateHouse.cs

房屋中介系统提供了房屋3种状态的表现形式,即“闲置”、“预定”和“出租”,主要通过ListInfo()方法显示房屋不同状态的图标。该功能的实现代码如下:

例程28 代码位置:资源包\TM\01\houseAgency\SeekTenantsM\frmStateHouse.cs

 代码贴士

❶ 通过froeach()语句读取DataTable对象内的信息。

❷ 房源处于闲置状态。

❸ 房源处于预定状态。

❹ 房源处于出租状态。

❺ 将istViewItem对象lv添加到listView控件的items集合中,以显示查询结果。

设置房源显示模式的代码如下:

例程29 代码位置:资源包\TM\01\houseAgency\SeekTenantsM\frmStateHouse.cs

注意

要将ImagList控件和ListView控件绑定,需要将ImagList控件的StateImageList、SmallImageList和LargeImageList属性同ListView控件绑定,另外还要将ShowGroups属性设置为true,这样才能达到想要的效果。

用户可以通过输入手机号码预订或取消预订房源信息,在txtPhone控件中按下回车键时,判断用户是否有权享有这两项功能。该功能的实现代码如下:

例程30 代码位置:资源包\TM\01\houseAgency\SeekTenantsM\frmStateHouse.cs

 代码贴士

❶ 查找是否存在与输入电话相符的求租人信息。

❷ 提示客户可以预订房源。

❸ 没有找到求租人信息。

❹ 选取手机号码文本框并获得焦点,等待用户再次输入。

注意

通过Select()方法和Focus()方法的并用,可以将所有信息选中并获得焦点,例如下面的代码:

    this.textBox1.Select(0, this.textBox1.Text.Length)
    this.textBox1.Focus();