1.主界面为MDI父窗体,要求加载时,将一个子窗体显示出来,子窗体不能有最大最小关闭按钮,连标题也不能用.
去掉标题容易,子窗体的Text的属性为空即可.将子窗体的FormBorderStyle改为None.但是,图中的控制按钮不是我想要的.
MDI父窗体上加上下面这句,就可以去掉.(MenuStrip1是我用到的菜单控件的Name)但是还是有问题,
Me.MainMenuStrip = MenuStrip1
,控制按钮还是存在.将子窗体的ControlBox的属性改为False,表示窗体不要有"控件/系统"菜单框.
2.外观层返回的DataTable类型数据,由于这次设计的是在D层是将所有数据查出,并且没有给字段名起别名.(以前是在D层写的Sql语句中就固定好了)
而我需要的只是其中某些字段,并且希望不要显示数据库中的英文字段,而是中文字段.(我知道一种可以,做个数据库翻译器,将DataTable的字段名全部翻译为中文并返回,我觉得这个挺好的,只是需要再加一张表,以后一定会试着用的)
所以需要在UI层处理,但是由于这种处理太多,所以写成方法.
Public Class frmNewTable Public Shared Function frmSetNewTable(ByVal dt As DataTable, ByVal strArray(,) As String) As DataTable Dim intRows As Integer '用于获取数组的行数 '等于数组中的总数/维数,如果是3行2列的,总数为6 intRows = CInt(strArray.Length / strArray.Rank) Dim intIndex As Integer '用于For循环的计数 Dim strNewArray(intRows - 1) As String '用于最后显示的新的数组,是1维的,给定了大小 For intIndex = 0 To intRows - 1 dt.Columns(strArray(intIndex, 0)).ColumnName = strArray(intIndex, 1) strNewArray(intIndex) = strArray(intIndex, 1) '给新数组赋值 Next dt = dt.DefaultView.ToTable(False, strNewArray) Return dt End Function End Class
而使用方法就是如下所有.其中dt是就是DataTable的实例化对象.
'查询购卡信息 dt = faCheckout.QueryBuyCard(cmbUserID.Text.Trim()) '给frmSetNewTable方法的数组赋值. strArray = {{"cardNo", "卡号"}, {"stuNo", "学号"}, {"registerDate", "日期"}, {"registerTime", "时间"}} dgvShowBuyCard.DataSource = frmNewTable.frmSetNewTable(dt, strArray)