




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、測量程序設計實習報告姓名: 班級: 學號: 教師評語:日期:二零一五年十月 實驗名稱:使用C#開發(fā)環(huán)境建立測量程序框架一、實驗的目的與任務:(1) 學會用C#窗體程序開發(fā)環(huán)境建立應用程序框架方法(2) 學會使用常見的Windows控件(3) 根據(jù)自身需要設計一個測量程序界面二、實驗的過程與步驟:啟動程序,選擇C#開發(fā)設置新建項目以學號命名進入集成開發(fā)環(huán)境:要求掌握利用C#程序開發(fā)平臺掌握windows窗體開發(fā)程序的步驟。所有控件均有name屬性,利用name屬性可調(diào)用控件。掌握以下控件的使用方法:按鈕控件按鈕(Button)是用戶以交互方式控制程序運行的控件之一主要屬性:(1)Text屬性設置
2、顯示在按鈕表面上的文字,用于說明該按鈕的作用。如果Text屬性值為“開始(&S)”,程序運行時當用戶按下組合鍵Alt+S的時候,相當于鼠標單擊這個按鈕。(2)Enabled屬性設置按鈕是否可用;程序運行期間Enabled屬性值為False時,按鈕表面將顯示成暗淡字體的樣式 ,這時按鈕暫時不起作用(這樣做的目的通常是為了防止誤操作)(3)Visible屬性設置按鈕的可見性,Visible屬性值為True時,按鈕是可見的;Visible屬性值為False時,按鈕不可見。文本控件標簽(Label)、文本框(TextBox)和富文本框(RichTextBox)1.Label Label控件主要
3、用于通過其Text屬性顯示文本信息 程序設計時一般只使用其屬性,常用屬性如下:屬性意義默認值Text標簽中顯示的文本內(nèi)容控件名稱Font顯示文本的字體、字號和字形父控件的Font屬性BackColor背景顏色Transparent(透明)ForeColor前景顏色,即顯示文本的顏色ControlText(控件顏色)BorderStyle邊框樣式None(無邊框)Image標簽的背景圖片無AutoSize根據(jù)文字的內(nèi)容多少和字號大小自動調(diào)整自身的尺寸TrueEnabled控件是否可用TrueVisible控件是否可見True例:創(chuàng)建如下圖所示窗體程序,程序運行時顯示簡單的文本信息。private
4、 void button1_Click(object sender, EventArgs e) label1.BackColor = Color.Transparent; label1.ForeColor = Color.Tomato; label1.Text = "歡迎進入C#Windows窗體程序設計廣闊天地!"2.TextBox控件程序運行期間,通過它的Text屬性既可顯示文本信息,又可以讓用戶通過鍵盤、鼠標等在文本框中直接輸入并修改文字信息,還可以在文本框中使用剪切、復制、粘貼等操作。屬性意義Text輸入到文本框中的字符PasswordChar用來替換在單行文本框中
5、輸入文本的密碼字符(僅在Multiline為False時有效)Multiline若為True,則允許用戶輸入多行文本信息ScrollBars當Multiline屬性為True時,指定文本框是否顯示滾動條WordWrap當Multiline屬性為True,并且一行的寬度超過文本框?qū)挾葧r,是否允許自動換行MaxLength允許輸入到文本框中的最大字符數(shù),默認值為32767SelectedText文本框中被選擇的文本(程序運行時設置)SelectionLength被選中文本的字符數(shù)(程序運行時設置)SelectionStart文本框中被選中文本的開始位置(程序運行時設置)ReadOnly設置文本框是
6、否為只讀,默認值為FalseCharacterCasing是否自動改變輸入字母的大小寫,默認值為Normal,其余選項有Lower和UpperCausesValidation若設置為True(默認值),控件獲得焦點時,將會觸發(fā)Validating和Validated事件事件意義Enter成為活動控件時發(fā)生GetFocus控件獲得焦點時發(fā)生(在Enter事件之后發(fā)生)Leave從活動控件變化不活動控件時發(fā)生Validating在控件驗證時發(fā)生Validated在成功驗證控件后發(fā)生LostFocus控件失去焦點后發(fā)生(在Leave事件之后發(fā)生)KeyDown文本框獲得焦點,并且有鍵按下時發(fā)生Key
7、Press文本框獲得焦點,并且有鍵按下然后釋放時發(fā)生(在KeyDown事件之后發(fā)生)KeyUp文本框獲得焦點,并且有鍵按下然后釋放時發(fā)生(在KeyPress事件之后發(fā)生)TextChanged文本框內(nèi)的文本信息發(fā)生改變時發(fā)生方法意義AppendText()在文本框當前文本的末尾追加新的文本Clear()清除文本框中的全部文本Copy()將文本框中被選中的文本復制到剪貼板Cut()將文本框中被選中的文本移動到剪貼板Paste()將剪貼板中的文字內(nèi)容復制到文本框中從當前位置開始的地方,但不清除剪貼板Focus()將文本框設置為獲得焦點Select()在文本框中選擇指定起點和長度的文本SelectA
8、ll()在文本框中選擇所有的文本DeselectAll()取消對文本框中所有文本的選擇(1)Multiline屬性和WordWrap屬性 Multiline屬性為False,文本框的高度無法改變,只能輸入單行文本。 Multiline屬性為True,文本框內(nèi)可以輸入多行文本,當文本長度超過文本框?qū)挾炔⑶襑ordWrap屬性為True時,可以自動換行。按Enter鍵可以強制換行。(演示)(2)ScrollBars屬性(演示)決定文本框是否帶有滾動條,有4個選項:None沒有滾動條Horizontal只有水平滾動條Vertical只有垂直滾動條Both同時擁有水平滾動條和垂直滾動條(3)Selec
9、tionLength、SelectionStart、SelectedText屬性這三個屬性只能程序運行期間設置,用來標識用戶在文本框內(nèi)選中的文字,程序運行期間,用戶可以通過在文本框內(nèi)的鼠標、鍵盤操作,設置這三個屬性的值,也可以通過賦值語句為它們賦值。設置了SelectionStart和SelectionLength屬性之后,被選中的文字就會自動地保存到SelectedText屬性中。(演示)(4)PassWordChar屬性當文本框用來接收輸入的密碼時,為了避免旁觀者在界面上看到密碼原文,可以用PassWordChar屬性來設置替代顯示字符,PasswordChar屬性僅當MultiLine屬
10、性為False時才有效。 (演示)(5)TextChanged事件 用戶向文本框輸入新的內(nèi)容,或程序?qū)ξ谋究虻腡ext屬性賦值,從而改變Text屬性原值時,將觸發(fā)TextChanged事件。用戶每輸入一個字符,就會觸發(fā)一次TextChanged事件。(6)KeyPress、KeyDown、KeyUp事件當文本框獲得焦點時,用戶按下并釋放鍵盤上的某個字符鍵,就會觸發(fā)KeyPress事件,并返回一個參數(shù)KeyPressEventArgs e到該事件過程中,e.KeyChar屬性即該鍵所代表的Unicode碼。KeyDown和KeyUp事件返回到事件過程的參數(shù)是KeyEventArgs e,其中e.
11、KeyValue屬性代表的是鍵位置碼。鍵盤上的每個鍵都有自己的鍵位置碼,包括那些不會產(chǎn)生Unicode碼的鍵(如Shift、Alt、Ctrl等)。(7)焦點事件一個窗體上可以載有多個控件,但任何時刻最多只允許一個控件能夠接受用戶的交互操作。這個能接受交互操作的控件稱為“擁有焦點”。鼠標單擊窗體上的某個控件,可以使它獲得焦點;利用鍵盤上的Tab鍵,可以使焦點在不同對象之間按TabIndex屬性指定的順序依次轉(zhuǎn)移(如果某個對象的TabStop屬性設置為False,利用Tab鍵轉(zhuǎn)移焦點時將跳過該對象)。當文本框獲得焦點時,將觸發(fā)Enter事件;失去焦點時,將依次觸發(fā)Leave事件、Validatin
12、g事件、Validated事件和(文本框的操作中可以利用這些事件過程來對數(shù)據(jù)更新進行驗證和確認)。(演示)(8)Copy()、Cut()、Paste()方法 復制、剪切、粘貼是文本編輯中最常用到的方法。Copy()方法:把文本框中被選擇的文本復制到剪貼板;Cut()方法:把文本框中被選擇的文本移動到剪貼板,文本框中原先被選擇的文本被刪除;Paste()方法:將剪貼板中的文字粘貼到文本框中;例:創(chuàng)建如下圖所示的Windows窗體程序,程序運行在文本框txtSour中輸入若干文字信息,然后用鼠標選擇其中的一段文字,選擇之后,單擊“復制”按鈕將被選中的文字復制到txtTarg中。代碼如下: priv
13、ate void button1_Click(object sender, EventArgs e)textBox1.Copy();textBox2.Paste();選擇控件和分組控件1單選按鈕(RadioButton)(1)Checked屬性表示單選按鈕是否已被選中;選中時Checked屬性值為true;未選中時Checked屬性值為False。當一個單選按鈕被選中時,同一組內(nèi)的其它單選按鈕均為未選中狀態(tài)。(2)Appearance屬性用來指定單選按鈕的外觀。值為Normal時外觀為圓形 ;值為Button時外觀顯示成按鈕的形狀,被選中時顯示為按下狀態(tài),未選中時為彈起狀態(tài)。(3)Checke
14、dChanged事件用戶在一組單選按鈕中改變原先選中對象時,觸發(fā)該事件;(4)Click事件每次單擊單選按鈕時,都會觸發(fā)Click事件。如果連續(xù)多次單擊同一個單選按鈕,最多只能改變Checked屬性一次。2復選框(CheckBox)(1)CheckState屬性復選框有3種狀態(tài): (選中)CheckState屬性值為Checked(未選中)CheckState屬性值為Unchecked(無效)CheckState屬性值為Indeterminate一組邏輯功能相關的復選框中,允許任意數(shù)量的復選框被選中,甚至全部選中,或者全部不選。一個復選框被選中與否,對同一組內(nèi)的其它復選框狀態(tài)沒有任何影響。(2
15、)ThreeState屬性ThreeState屬性值為true時,允許復選框的CheckState屬性有上述3種狀態(tài);當屬性置為false時,CheckState屬性就只能有Checked(選中)和Unchecked(未選中)兩種狀態(tài)。(3)CheckedChanged事件 當復選框的Checked屬性改變時,就會觸發(fā)該事件。但當ThreeState屬性值為true時,單擊復選框不會改變Checked屬性。3群組框控件(GroupBox)的“容器”作用窗體上繪制一個GroupBox控件,然后在它的邊框線以內(nèi)繪制單選按鈕或其它控件,就把它們裝入了同一個容器。窗體上的空白位置創(chuàng)建控件,然后把它拖放
16、到GroupBox的邊框線內(nèi),也可以將其裝入同一個容器。設計階段判斷一個控件是否裝入GroupBox的最簡單方法,就是在窗體上拖動GroupBox。如果線框內(nèi)的控件跟隨移動,則說明它確實裝入了GroupBox。裝入同一個GroupBox的單選按鈕,就構成了一個邏輯上獨立的組,單擊其中的任意一個單選按鈕,使其處于選中狀態(tài),組內(nèi)的其它對象均處于未選中狀態(tài),對它們的操作不會影響到當前GroupBox以外的單選按鈕。列表選擇控件列表選擇控件用來實現(xiàn)較多個選項的交互式選擇操作。列表框(ListBox)、復選列表框(CheckedListBox)、組合框(ComboBox)1列表框(ListBox)列表框
17、以列表形式顯示多個數(shù)據(jù)項,供用戶選擇。用戶只能從列表中選擇已有的數(shù)據(jù)項,而不能直接修改其中的內(nèi)容。如果列表中的數(shù)據(jù)項較多,超過設計時給定的長度,不能一次全部顯示,就會自動添加滾動條。屬性意義Items列表框中所有選項的集合,利用這個集合可以增加或刪除選項SelectedIndex列表框中被選中項的索引(從0起算)。當多項被選中時,表示第一個被選中的項SelectedIndices列表框中所有被選中項的索引(從0起算)集合SelectedItem列表框中當前被選中的選項。當多個選項被選中時,表示第一個被選中的項SelectedItems列表框中所有被選中項的集合SelectionMode列表框的
18、選擇模式(None、One、MultiSimple、MultiExtended)Text寫入時,搜索并定位在與之匹配的選項位置;讀出時,返回第一個被選中的項MultiColumn是否允許列表框以多列的形式顯示(true表示允許多列)ColumnWidth在列表框允許多列顯示的情況下,指定列的寬度Sorted若為true,則將列表框的所有選項按字母順序排序;否則按加入的順序排列事件和方法意義SelectedIndexChanged事件被選中項的索引值改變時發(fā)生ClearSelected()方法清除列表框中所有被選中的選項,無返回值FindString()方法查找列表框中第一個以指定字符開頭的選項
19、,返回該選項的索引(從0起算)GetSelected()方法若列表框中指定索引值的選項被選中,則返回true值,否則返回falseSetSelected()方法設置或取消對列表框中指定索引處的選項的選擇,無返回值(1)Items屬性Items屬性是一個string類型的數(shù)組,數(shù)組中的每一個元素對應著列表框中的一個選項,用下標(索引)值來區(qū)分不同的元素。下標編號從0開始,最后一個元素的下標為Items.Count-1。Items屬性即可以在通過屬性窗口再設計階段設置,也可以在運行過程中調(diào)用Add、Remove、Insert方法修改;(2)SelectedIndices屬性該屬性是一個int類型的
20、數(shù)組,數(shù)組中每一個元素對應列表框中被選中的一個項的下標(索引)值,只能程序運行期間設置或引用,設計階段無效。(3)SelectionMode屬性該屬性用于設置列表框選項的選擇模式:None禁止選擇列表框中的任何選項One一次只能在列表框中選擇一個選項,默認值MultiSimple簡單多項選擇。MultiExtended擴展多項選擇。按住Ctrl鍵,鼠標單擊可以選定多個選項,再次單擊則取消選擇;按住Shift鍵,鼠標單擊可選擇一個連續(xù)區(qū)間內(nèi)的多個選項。(4)GetSelected()方法 該方法用于測試列表框中一個特定選項是否被用戶選中,括號內(nèi)的參數(shù)是選項的索引值。當listBox1中某項被選中
21、,GetSelected方法測試可以得到true值;當listBox1中指定項未選中, GetSelected()方法測試得到false值。(5)SetSelected()方法 該方法用于在程序運行期間設置或取消對列表框中特定選項的選擇,括號內(nèi)的參數(shù)是選項的索引值。listBox1.SetSelected(n, true)可以選中列表框中的第n個選項;listBox1. SetSelected(n, false) 取消對列表框第n個選項的選擇;2復選列表框(CheckedListBox)CheckedListBox兼具列表框與復選框的功能,它提供一個項目列表,列表中的每一項都是一個復選框。當窗
22、體上需要的復選框較多,或者需要在程序運行時動態(tài)地決定有哪些選項時,使用CheckedListBox比較方便名稱意義CheckOnClick屬性若為true,第一次單擊復選列表框中的選項時即改變其狀態(tài)CheckedItems屬性復選列表框中所有被選中項的集合CheckedIndices屬性復選列表框中所有被選中項的索引(從0起算)的集合SetItemChecked方法設置或取消對復選列表框中指定索引處的選項的選中狀態(tài),無返回值SetSelected方法設置或取消對復選列表框中指定索引處的選項的選擇,不改變復選框狀態(tài)3組合框(ComboBox)組合框提供一個顯示多個選項的列表,供用戶以交互方式選擇
23、。在未選擇狀態(tài),組合框的可見部分只有文本編輯框和按鈕。當用戶單擊文本編輯框右端的箭頭按鈕 時,列表展開,用戶可以在其中進行選擇。當用戶完成選擇后,列表就會自動收折起來。組合框不允許在列表中選擇多個選項,但可以在它的文本編輯框內(nèi)輸入新的選項。(1)DropDownStyle屬性該屬性用來設置組合框的樣式,:DropDown 單擊 展開列表,用戶可以在控件的文本編輯框輸入文字DropDownList 單擊展開列表,用戶不能在控件的文本編輯框輸入文字Simple 列表框的高度可以在設計階段由程序員指定,與文本編輯框一起顯示在窗體上,但不能收起或拉下。(2)向控件的列表中添加選項的方法Items.Ad
24、d( obj item );/新添加的選項追加在列表的末尾Items.AddRange( object items ); /新添加的選項數(shù)組追加在列表末尾Items.Insert( int index, obj item );/按index指定的索引位置插入新的選項(3)從控件的列表中移除選項的方法Items.Remove( obj item ); /將列表中指定的選項移除Items.RemoveAt( int index );/將列表中指定索引的項移除三、程序運行效果該窗口是一個簡易的附合導線平差功能實現(xiàn)的窗口界面,界面中“未知點數(shù)”為所要求的未知點坐標的個數(shù),“已知點輸入”為附合導線平差時
25、的已知坐標即定向坐標,“添加已知點”按鈕其作用是點擊添加上面輸入的已知點數(shù)據(jù)到表格控件中,“開始計算”按鈕其作用是點擊開始進行計算。界面內(nèi)容如下圖所示:四、本實驗心得體會實驗名稱:導線計算程序設計及粗差探測一、實驗的目的與任務:(1) 掌握方位角計算的程序設計方法(2) 掌握符合導線、閉合導線、支導線計算的程序設計方法(3) 理解粗差探測的程序設計方法二、實驗的設計與開發(fā)步驟:導線測量是控制測量中常用的方法之一,符合導線是導線布設的一種形式。在導線外業(yè)測量完成后,需要進行近似平差,以求得每個導線點的坐標值。導線平差計算數(shù)據(jù)多,程序繁瑣,采用手工計算不僅工作量大,且很容易出錯, Visual C
26、#是目前進行windows程序開發(fā)廣泛應用的工具之一,它功能強大,并且具有可視性和面向?qū)ο蟪绦蛟O計的優(yōu)點,利用Visual C#開發(fā)導線平差應用程序,界面友好,用戶使用方便。1.符合導線平差步驟(1)計算角度閉合差,判斷誤差是否超限,若在允許范圍則進行調(diào)整(包括計算角度改正數(shù)、改正數(shù)分配和改正后的角度);(2)計算導線邊方位角;(3)計算坐標增量;(4)計算導線全長閉合差,判斷閉合差是否超限,若在允許范圍內(nèi)則進行調(diào)整(包括計算坐標增量改正值,改正數(shù)分配和改正后的坐標增量);(5)計算導線點坐標。2.導線平差計算公式 角度閉合差:方位角的推算:坐標增量:坐標閉合差:各邊的坐標增量改正數(shù):導線的精
27、度:3.程序界面的設計根據(jù)平差過程中使用到的已知數(shù)據(jù)和平差的輸出數(shù)據(jù),設計相應的程序界面,界面的能滿足數(shù)據(jù)的輸入、輸入數(shù)據(jù)的顯示、計算數(shù)據(jù)的顯示等要求,根據(jù)上述要求設計界面如下:界面包括一個9個輸入框、12個標簽、2個命令按鈕、1個表格控件。界面中各輸入框、按鈕功能:“未知點數(shù)”:用來輸入待求坐標的個數(shù)。“已知點輸入”:用來輸入已知點數(shù)據(jù)?!疤砑右阎c”按鈕:用來將已知點數(shù)據(jù)加入到右邊表格中?!伴_始計算”按鈕:點擊開始進行平差計算。三、程序運行及數(shù)據(jù)測試效果測試數(shù)據(jù)已知點坐標:A(1318.8830,1009.9262)B(920.7200,1306.9706)C(967.7081,3420.9362) D(1385.6557,3715.5052)從圖中提取的坐標:1.(1024.5886,1883.7317)2.(908.3546,2425.8376)3.(1234.7989,29333.2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 牙醫(yī)藥品知識培訓課件
- 教育投資績效評估表格(年份對比)
- 心理咨詢技能實務試題
- 印刷材料采購與使用協(xié)議
- 山東省菏澤市2024-2025學年高二上學期1月期末生物學試題(含答案)
- 健康醫(yī)療智能硬件開發(fā)合作契約書
- 秘密花園的閱讀引導:英文名著導讀教案
- 智慧城市智慧交通系統(tǒng)智能調(diào)度預案
- 產(chǎn)品定制開發(fā)合同書及產(chǎn)品質(zhì)量保障承諾書
- 大數(shù)據(jù)分析平臺開發(fā)合作協(xié)議
- GB/T 1692-2008硫化橡膠絕緣電阻率的測定
- GB 15603-1995常用化學危險品貯存通則
- 人教版PEP初中英語中考總復習:復習重點課件
- 數(shù)字化消防管理解決方案
- 二類汽修廠汽車維修管理新規(guī)制度匯編
- 交接班流程綱要綱要圖
- 浙江省衢州市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會明細
- 初中英語《Unit5-Do-you-remember-what-you-were-doing》教學課件設計
- 品德家庭小賬本
- 癥狀性大腦中動脈慢性閉塞血管內(nèi)開通治療課件
- 大象版科學四年級下冊第一單元測試卷(含答案)
評論
0/150
提交評論