




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Norman Guo在實踐中不知不懂之處多存于此,以備后閱自勉筆記WinformC#版目錄一、語法點2二、控件焦點設(shè)置6三、C# 登陸后關(guān)閉登錄窗口跳轉(zhuǎn)到主窗體6一、 語法點1.a.ToString().ToLower()/將a轉(zhuǎn)化為字符型后,再轉(zhuǎn)化為小寫形式的副本2. 線程簡單使用方法Thread thUserInfo = new Thread(new ThreadStart(delegate();3. 關(guān)閉從窗體就退出程序并釋放資源只要是 主窗口被關(guān)閉了,所有的資源都會釋放,但在關(guān)閉從窗口時(Form2)時,資源并沒有釋放,此時可以在Form2_FormClosed(object send
2、er, FormClosedEventArgs e) 事件中加入如下代碼: Application.Exit();/通知所有消息終止,并在終止后關(guān)閉所有窗體,并釋放資源.4. 對windows窗體控件進行線程安全調(diào)用/ This event handler creates a thread that calls a / Windows Forms control in an unsafe way.private void setTextUnsafeBtn_Click(object sender, EventArgs e)this.demoThread = new Thread(ne
3、w ThreadStart(this.ThreadProcUnsafe);this.demoThread.Start();/ This method is executed on the worker thread and makes/ an unsafe call on the TextBox control.private void ThreadProcUnsafe()this.textBox1.Text = "This text was set unsafely."5. Panel+Splitter可將Form窗體分塊6. 在Winform中改變空間顏色control
4、.ForeColor = System.Drawing.Color.Black; /一個控件的前景色7. StringBuilderString 對象是不可改變的。每次使用 System.String 類中的方法之一時,都要在內(nèi)存中創(chuàng)建一個新的字符串對象,這就需要為該新對象分配新的空間。在需要對字符串執(zhí)行重復(fù)修改的情況下,與創(chuàng)建新的 String 對象相關(guān)的系統(tǒng)開銷可能會非常昂貴。如果要修改字符串而不創(chuàng)建新的對象,則可以使用 System.Text.StringBuilder 類。例如,當(dāng)在一個循
5、環(huán)中將許多字符串連接在一起時,使用 StringBuilder 類可以提升性能。 通過用一個重載的構(gòu)造函數(shù)方法初始化變量,可以創(chuàng)建 StringBuilder 類的新實例,正如以下示例中所闡釋的那樣。 1 StringBuilder MyStringBuilder = new StringBuilder(&qu
6、ot;Hello World!"); 設(shè)置容量和長度 雖然 StringBuilder 對象是動態(tài)對象,允許擴充它所封裝的字符串中字符的數(shù)量,但是您可以為它可容納的最大字符數(shù)指定一個值。此值稱為該對象的容量,不應(yīng)將它與當(dāng)前 StringBuilder 對象容納的字符串長度混淆在一起。例如,可以創(chuàng)建 StringBuilder 類的帶有字符串“Hello”(長度為 5)的一個新實例,同時可以指定該對象的最大容量為
7、0; 25。當(dāng)修改 StringBuilder 時,在達到容量之前,它不會為其自己重新分配空間。當(dāng)達到容量時,將自動分配新的空間且容量翻倍。可以使用重載的構(gòu)造函數(shù)之一來指定 StringBuilder 類的容量。以下代碼示例指定可以將 MyStringBuilder 對象擴充到最大 25 個空白。 1 StringBuilder MyStringBuilder =
8、0; new StringBuilder("Hello World!", 25); 另外,可以使用讀/寫 Capacity 屬性來設(shè)置對象的最大長度。以下代碼示例使用 Capacity 屬性來定義對象的最大長度。 1 MyStringBuilder.Capacity = 25;EnsureCapac
9、ity 方法可用來檢查當(dāng)前 StringBuilder 的容量。如果容量大于傳遞的值,則不進行任何更改;但是,如果容量小于傳遞的值,則會更改當(dāng)前的容量以使其與傳遞的值匹配。 也可以查看或設(shè)置 Length 屬性。如果將 Length 屬性設(shè)置為大于 Capacity 屬性的值,則自動將 Capacity 屬性更改為與 Length 屬性相同的值。如果將
10、 Length 屬性設(shè)置為小于當(dāng)前 StringBuilder 對象內(nèi)的字符串長度的值,則會縮短該字符串。 修改 StringBuilder 字符串 下表列出了可以用來修改 StringBuilder 的內(nèi)容的方法。 方法名 使用 StringBuilder.Append 將
11、信息追加到當(dāng)前 StringBuilder 的結(jié)尾。 StringBuilder.AppendFormat 用帶格式文本替換字符串中傳遞的格式說明符。 StringBuilder.Insert 將字符串或?qū)ο蟛迦氲疆?dāng)前 StringBuilder 對象的指定索引處。 StringBuilder.Remove 從當(dāng)前 StringBuilder 對象中移除指定
12、數(shù)量的字符。 StringBuilder.Replace 替換指定索引處的指定字符。 Append Append 方法可用來將文本或?qū)ο蟮淖址硎拘问教砑拥接僧?dāng)前 StringBuilder 對象表示的字符串的結(jié)尾處。以下示例將一個 StringBuilder 對象初始化為“Hello World”,然后將一些文本追加到該對象的結(jié)尾處。將根據(jù)需要自動分配空間。
13、 1 StringBuilder MyStringBuilder = new StringBuilder("Hello World!"); 2 MyStringBuilder.Append(" What a
14、 beautiful day."); 3 Console.WriteLine(MyStringBuilder); 此示例將 Hello World! What a beautiful day. 顯示到控制臺。 AppendFormat AppendFormat
15、 方法將文本添加到 StringBuilder 的結(jié)尾處,而且實現(xiàn)了 IFormattable 接口,因此可接受格式化部分中描述的標(biāo)準(zhǔn)格式字符串。可以使用此方法來自定義變量的格式并將這些值追加到 StringBuilder 的后面。以下示例使用 AppendFormat 方法將一個設(shè)置為貨幣值格式的整數(shù)值放置到 StringBuilder 的結(jié)尾。 1 int &
16、#160;MyInt = 25; 2 StringBuilder MyStringBuilder = new StringBuilder("Your total is ");
17、0;3 MyStringBuilder.AppendFormat("0:C ", MyInt); 4 Console.WriteLine(MyStringBuilder); 此示例將 Your total is $25.00 顯示到控制臺。 Insert
18、 Insert 方法將字符串或?qū)ο筇砑拥疆?dāng)前 StringBuilder 中的指定位置。以下示例使用此方法將一個單詞插入到 StringBuilder 的第六個位置。 1 StringBuilder MyStringBuilder = new StringBuilder("Hello
19、0; World!"); 2 MyStringBuilder.Insert(6,"Beautiful "); 3 Console.WriteLine(MyStringBuilder); 此示例將 Hello Beautiful World! 顯示到控制臺。 Re
20、move 可以使用 Remove 方法從當(dāng)前 StringBuilder 中移除指定數(shù)量的字符,移除過程從指定的從零開始的索引處開始。以下示例使用 Remove 方法縮短 StringBuilder。 1 StringBuilder MyStringBuilder = new Str
21、ingBuilder("Hello World!"); 2 MyStringBuilder.Remove(5,7); 3 Console.WriteLine(MyStringBuilder); 此示例將 Hello 顯示到控制臺。 Replace 使用 Replace &
22、#160; 方法,可以用另一個指定的字符來替換 StringBuilder 對象內(nèi)的字符。以下示例使用 Replace 方法來搜索 StringBuilder 對象,查找所有的感嘆號字符 (!),并用問號字符 (?) 來替換它們。 1 StringBuilder MyStringBuilder = new
23、0; StringBuilder("Hello World!"); 2 MyStringBuilder.Replace('!', '?'); 3 Console.WriteLine(MyStringBuilder); 8. 強制轉(zhuǎn)換成整型在C#強制轉(zhuǎn)換中,(int),Int32.Parse() 和 Conver
24、t.toInt32() 三種方法有何區(qū)別?int 關(guān)鍵字表示一種整型,是32位的,它的 .NET Framework 類型為 System.Int32。(int)表示使用顯式強制轉(zhuǎn)換,是一種類型轉(zhuǎn)換。當(dāng)我們從int類型到long、float、double 或decimal 類型,可以使用隱式轉(zhuǎn)換,但是當(dāng)我們從long類型到int類型轉(zhuǎn)換就需要使用顯式強制轉(zhuǎn)換,否則會產(chǎn)生編譯錯誤。Int32.Parse()表示將數(shù)字的字符串轉(zhuǎn)換為32 位有符號整數(shù),屬于內(nèi)容轉(zhuǎn)換1。我們一種常見的方法:public static int Parse(string)。如果string為空,則拋出ArgumentNu
25、llException 異常;如果string格式不正確,則拋出FormatException 異常;如果string的值小于MinValue或大于MaxValue的數(shù)字,則拋出OverflowException異常。Convert.ToInt32() 則可以將多種類型(包括 object 引用類型)的值轉(zhuǎn)換為 int 類型,因為它有許多重載版本2:9. 控制小數(shù)點位數(shù)1)保持原來的float類型值不變,顯示或輸出時指定小數(shù)點位數(shù)float x = 62.11512322f;/用 "f2" 指定小數(shù)點
26、后2位string s = string s =string.Format("0:f2", x);/結(jié)果 s = "62.12"2)改變float 類型值,保持指定的小數(shù)位數(shù)float x = 62.11512322f;/將 x 后小數(shù)點位數(shù)指定為2(四舍五入)float x = (float)Math.Round(double)x, 2)/ 結(jié)果:
27、60;x = 62.12二、 控件焦點設(shè)置winform窗口打開后文本框的默認焦點設(shè)置,進入窗口后默認聚焦到某個文本框,兩種方法:設(shè)置tabindex把該文本框?qū)傩岳锏膖abIndex設(shè)為0,焦點就默認在這個文本框里了。Winform的Activated事件在Form的Activated事件中添加textBox1.Focus(), 即可獲得焦點。private void Form1_Activated(object sender, EventArgs e) textBox1.Focus(); TextBo
28、x是可以獲得焦點的. 有幾個前提:1. TextBox所屬的窗體(Form)在可操作(Active)狀態(tài). 即用戶選中了Form.2. TextBox的Enable屬性,Visiable屬性為True.三、 C# 登陸后關(guān)閉登錄窗口跳轉(zhuǎn)到主窗體 private void btn_submit_Click(object sender, EventArgs e)
29、 try SqlConnection con = new ConnectSQL().getSQLCon();
30、; string sql = "select * from userinfo where username='" + this.txt_NserName.Text +"'" SqlCommand cmd = new SqlCommand(sql, con);
31、; con.Open(); SqlDataReader dr = cmd.ExecuteReader(); if (dr.Read()
32、; if (dr"password".ToString() = this.txt_pwd.Text)
33、; UserInfo.email = dr"email".ToString();
34、60; UserInfo.nickname = dr"nickname".ToString(); UserInfo.state = dr
35、"state".ToString(); UserInfo.username = dr"username".ToString();
36、 UserInfo.userimage = dr"userimage".ToString(); UserInfo.uid = int.Parse(dr"uid".T
37、oString(); this.DialogResult = DialogResult.OK;
38、 else
39、 MessageBox.Show("密碼錯誤!");
40、; dr.Dispose(); con.Close(); &
41、#160; else if (this.txt_NserName.Text = &
42、quot;") MessageBox.Show("請輸入信息")
43、; else
44、; MessageBox.Show("該用戶名不存在");
45、160; dr.Dispose(); con.Close();
46、0; catch (Exception ex)
47、; MessageBox.Show("點擊按鈕事件異常:n"+ex.ToString() 以上代碼是登錄按鈕的事件對于登錄后怎么關(guān)閉的登錄窗口的代碼如下Program.cs中:/ <summary>/ 應(yīng)用程序的主入口點。/ </summary>STAThread static
48、void Main() try Application.EnableVisual
49、Styles(); Application.SetCompatibleTextRenderingDefault(false); if (SysInfo.SysInit() = false)
50、160; MessageBox.Show("服務(wù)器配置錯誤,請檢查ini文件!", "信息提示"); &
51、#160; return; /第一種方法
52、0; FrmLogin fLogin = new FrmLogin(); fLogin.ShowDialog(); if (fLogin.DialogResult = Dialog
53、Result.OK) Application.Run(new FrmMain();
54、 /第二種方法 / FrmLogin fLogin = new FrmLogin();
55、0; /fLogin.ShowDialog(); / if (DialogResult.OK != fLogin.ShowDialog() /
56、 / return; / / FrmMain fe = n
57、ew FrmMain(); / fe.ShowDialog(); catch(Exception ex) &
58、#160; MessageBox.Show(ex.Message); 彈出新頁面,操作后自己關(guān)閉并使父窗體跳轉(zhuǎn)到相應(yīng)界面 string Url=null;Url = Request.ApplicationPath+"/CheckList/FireCheckList.aspx?State=1"Response.Write("<script language='javascript'>window.opener.Form1.submit();</script>");Response.Write("<script language='javascr
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年軟件開發(fā)關(guān)鍵考點試題及答案
- 計算機二級VB考試的匹配題詳解及試題與答案
- 進口替代政策的經(jīng)濟效果試題及答案
- 2025關(guān)于北京二手房購房合同的范本
- 行政管理考試提綱試題與答案
- 行政法學(xué)知識檢查試題與答案
- 如何通過分享經(jīng)驗改善工作計劃
- 資產(chǎn)配置的基本方法計劃
- 戰(zhàn)略部署的執(zhí)行力與風(fēng)險控制試題及答案
- 行政法學(xué)考試實踐試題及答案報告
- 湖北省2025屆高三(4月)調(diào)研模擬考試物理試題及答案
- 機駕長習(xí)題+答案
- 學(xué)生宿舍衛(wèi)生評比方案
- 2025年中鐵特貨物流股份有限公司招聘(75人)筆試參考題庫附帶答案詳解
- 利劍護蕾安全教育
- 煙花爆竹零售店(點)安全技術(shù)規(guī)范
- 超星爾雅學(xué)習(xí)通《人工智能與科學(xué)之美(湘潭大學(xué))》2025章節(jié)測試附答案
- qc崗位面試試題及答案
- 電商家具用戶體驗研究-深度研究
- iata第 66版危險貨物規(guī)則(dgr 66th)
- 高考英語單詞3500(亂序版)
評論
0/150
提交評論