筆記——C#Winform_第1頁
筆記——C#Winform_第2頁
筆記——C#Winform_第3頁
筆記——C#Winform_第4頁
筆記——C#Winform_第5頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論