WCF之功能总结
最近在做一个WCF项目,由于第一次实战,还是有很多不懂的,下面分享一下在做项目中总结下面的功能。
功能一:窗体居中
在属性页中找到StartPosition属性,修改值为CenterScreen;
功能二:WinForm程序中使窗体大小不可改变
在属性页中找到FormBorderStyle属性,修改值为FixedDialog;
功能三:下拉框不可编辑
在属性页中找到DropDownStyle属性,修改值为DropDownList;
功能四:手动给datetable添加数据
//实例化DATATABLE DATATABLE DD = NEW DATATABLE();
//添加列数据名称和数据类型
DD.COLUMNS.ADD(NEW DATACOLUMN(“DATA”, TYPE.GETTYPE(“SYSTEM.STRING”)));
//实例化DATAROW行数据
DATAROW DATAROW = DD. NEWROW(); //给行数据添加数据。
DATAROW[“DATA”] = “22”;
//将行数据添加到表数据中
DD.ROWS.ADD(DATAROW);
功能五:WinForm程序窗体随鼠标移动
PUBLIC STATIC POINT CPOINT;
PRIVATE VOID FRMLOGIN_MOUSEDOWN(OBJECT SENDER, MOUSEEVENTARGS E)
{
CPOINT = NEW POINT(-E.X, -E.Y);
}
PRIVATE VOID FRMLOGIN_MOUSEMOVE(OBJECT SENDER, MOUSEEVENTARGS E)
{
IF (E.BUTTON == MOUSEBUTTONS.LEFT)
{
POINT MYPOSITTION = CONTROL.MOUSEPOSITION;//获取当前鼠标的屏幕坐标
MYPOSITTION.OFFSET(CPOINT.X, CPOINT.Y);//重载当前鼠标的位置
THIS.DESKTOPLOCATION = MYPOSITTION;//设置当前窗体在屏幕上的位置
}
}
功能六:子窗体点击关闭按钮实现提示框并可退出程序
BOOL MESSAGEBOX_CLOSE=FALSE;
PRIVATE VOID MAIN_FORMCLOSING(OBJECT SENDER, FORMCLOSINGEVENTARGS E)
{
//解决两次提示问题
IF (!MESSAGEBOX_CLOSE)
{
IF (MESSAGEBOX.SHOW("确定退出吗?", "退出程序", MESSAGEBOXBUTTONS.OKCANCEL) != DIALOGRESULT.OK)
{
//取消默认事件
E.CANCEL = TRUE;
}
ELSE
{
MESSAGEBOX_CLOSE = TRUE;
APPLICATION.EXIT();
E.CANCEL = TRUE;
}
}
}
功能七:解决分布式客户端接收不了DataTable数据类型
解决办法:将DataTable存放到DataSet数据类型中,再传到客户端。
服务端代码如下:
PUBLIC DATASET SELECTTYPE() {
SQLPARAMETER[] SQLPAMS = {
NEW SQLPARAMETER("@TYPE",SQLDBTYPE.NCHAR)
};//声明SQL参数数组并实例化相关参数
SQLPAMS[0].VALUE = "SELECTUSER_TYPE";//对参数赋值
DATASET DATESET = NEW DATASET();
DATATABLE DT = DAL.QUERYDATATABLE("FRM_LOGIN", SQLPAMS);
DATESET.TABLES.ADD(DT);
//MYDAL.DAL_SELECTDB_PAR("存储过程的名字",SQL参数数组);
RETURN DATESET;
}
客户端代码如下:
PRIVATE VOID LOGIN_LOAD(OBJECT SENDER, EVENTARGS E)
{
THIS.SELECTTYPE.DATASOURCE = BLL.SELECTTYPE().TABLES[0];
THIS.SELECTTYPE.DISPLAYMEMBER = "USERTYPE_NAME";
THIS.SELECTTYPE.VALUEMEMBER = "USERTYPE_ID";
THIS.SELECTTYPE.SELECTEDINDEX = 0;
}