freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于c的網(wǎng)絡(luò)聊天軟件的設(shè)計與實現(xiàn)(編輯修改稿)

2025-07-17 12:30 本頁面
 

【文章內(nèi)容簡介】 提示不合法原因檢查合法性輸入注冊信息自動添加星座選項與血型選項打開注冊界面圖57 注冊界面流程圖其中確認(rèn)注冊按鈕的代碼實現(xiàn)如下:// 點擊注冊,向數(shù)據(jù)庫添加記錄 private void btnRegist_Click(object sender, EventArgs e) { // 輸入驗證通過,就插入記錄到數(shù)據(jù)庫 if (ValidateInput()) { int myNum = 0。 // 號碼 string message。 // 彈出的消息 string sex = ? : 。 // 獲得選中的性別 string sql = 。 // 查詢用的SQL語句 int starId。 // 星座Id int bloodTypeId。 // 血型Id bool error = false。 // 操作數(shù)據(jù)庫是否出錯 // 根據(jù)星座和血型的選擇來分情況確定SQL語句 if ( != amp。amp。 != ) { // 獲得星座的Id starId = GetStarId()。 // 獲得血型的Id bloodTypeId = GetBloodType()。 sql = (INSERT INTO Users (LoginPwd, NickName, Sex, Age, Name, StarId, BloodTypeId) values (39。{0}39。,39。{1}39。,39。{2}39。,{3},39。{4}39。,{5},{6}), (), (), sex, (()), (), starId, bloodTypeId)。 } else if ( != amp。amp。 == ) { // 獲得星座的Id starId = GetStarId()。 sql = (INSERT INTO Users (LoginPwd, NickName, Sex, Age, Name, StarId) values (39。{0}39。,39。{1}39。,39。{2}39。,{3},39。{4}39。, {5}), (), (), sex, (()), (),starId)。 } else if ( == amp。amp。 != ) { // 獲得血型的Id bloodTypeId = GetBloodType()。 sql = (INSERT INTO Users (LoginPwd, NickName, Sex, Age, Name, BloodTypeId) values (39。{0}39。,39。{1}39。,39。{2}39。,{3},39。{4}39。, {5}), (), (), sex, (()), (), bloodTypeId)。 } else { sql = (INSERT INTO Users (LoginPwd, NickName, Sex, Age, Name) values (39。{0}39。,39。{1}39。,39。{2}39。,{3},39。{4}39。), (), (), sex, (()), ())。 } try { // 創(chuàng)建Command 對象 SqlCommand mand = new SqlCommand(sql, )。 ()。 // 打開數(shù)據(jù)庫連接 int result = ()。 // 執(zhí)行插入命令 if (result == 1) { sql = SELECT @@Identity FROM Users。 // 查詢新增加的記錄的標(biāo)識號 = sql。 // 重新指定Command 對象的SQL 語句 myNum = (())。 // 強制類型轉(zhuǎn)換會出錯 message = (注冊成功!你的My號碼是{0}, myNum)。 } else { message = 注冊失敗,請重試!。 } } catch (Exception ex) { error = true。 message = 服務(wù)器出現(xiàn)意外錯誤!請稍候再試!。 ()。 } finally { ()。 // 關(guān)閉數(shù)據(jù)庫連接 } // 顯示注冊結(jié)果 if (error) { (message, 注冊失敗, , )。 } else { (message, 注冊結(jié)果, , )。 } ()。 } } 主界面設(shè)計 當(dāng)用戶輸入正確的登錄信息并登錄后,出現(xiàn)圖58所示的主界面:圖58 主界面 登陸后在“我的好友”列表中顯示當(dāng)前好友列表,包括好友的頭像和昵稱。在主界面的頂部要顯示當(dāng)前登陸的用戶頭像,昵稱和登錄賬號。 當(dāng)有新的聊天消息時候。發(fā)來的消息的好友頭像要閃動,雙擊頭像彈出“聊天”窗口后,頭像停止閃動,當(dāng)有添加好友請求消息時,窗體底部的好友請求驗證按鈕要閃爍,單擊該按鈕彈出“系統(tǒng)消息”窗體后,按鈕停止閃爍。通過主窗體下方的按紐打開“查找/添加好友”窗體,“個人信息”窗口,“系統(tǒng)消息”窗口,也可刷新好友列表和退出程序。通過右鍵菜單能夠切換大小頭像。能夠把陌生人轉(zhuǎn)為好友,能夠刪除一個好友或陌生人,如圖59所示:圖59 右鍵功能顯示好友列表的控鍵可以用提供的第三方控鍵sidebar。Sidebar是一個能夠以分組形式顯示列表的控件,能夠?qū)崿F(xiàn)類似的好友分組功能,sidebar控鍵中可以包含很多組(sbgroup),每個組可以包含很多sidebar項(sbitem)。Sidebar的列表項有兩種顯示方式:大圖標(biāo)和小圖標(biāo),它可以通過它的view屬性來設(shè)置。Sidebar 控件還有一個imagelist 屬性,可以和一個imagelist控件關(guān)聯(lián),列表項中顯示的圖片就是存放在imagelist控件中的圖片??梢酝ㄟ^Sidebar項(sbitem)的imageindex來指定圖片在imagelist控件中的索引。其中加載窗體時的代碼如下:// 窗體加載時發(fā)生 private void MainForm_Load(object sender, EventArgs e) { // 工具欄的消息圖標(biāo) = [0]。// 顯示個人的信息 ShowSelfInfo()。// 添加 SideBar 的兩個組 (我的好友)。 (陌生人)。// 向我的好友組中添加我的好友列表 ShowFriendList()。 }定時掃描數(shù)據(jù)庫讀取未讀信息的代碼如下:// 定時掃描數(shù)據(jù)庫,找到未讀消息 private void tmrMessage_Tick(object sender, EventArgs e) { ShowFriendList()。 // 刷新好友列表 int messageTypeId = 1。 // 消息類型 int messageState = 1。 // 消息狀態(tài) // 找出未讀消息對應(yīng)的好友Id string sql = ( SELECT Top 1 FromUserId, MessageTypeId, MessageState FROM Messages WHERE ToUserId={0} AND MessageState=0, )。 SqlCommand mand。 // 消息有兩種類型:聊天消息、添加好友消息 try { mand = new SqlCommand(sql, )。 ()。 SqlDataReader dataReader = ()。 // 循環(huán)讀出一個未讀消息 if (()) { = (int)dataReader[FromUserId]。 messageTypeId = (int)dataReader[MessageTypeId]。 messageState = (int)dataReader[MessageState]。 } ()。 } catch (Exception ex) { ()。 } finally { ()。 } // 判斷消息類型,如果是添加好友消息,就啟動喇叭timer,讓小喇叭閃爍 if (messageTypeId == 2 amp。amp。 messageState == 0) { SoundPlayer player = new SoundPlayer()。 ()。 ()。 } // 如果是聊天消息,就啟動聊天timer,讓好友頭像閃爍 else if (messageTypeId == 1
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1