第六周學習筆記—C#各類控件的輸入輸出
1.思維導圖
- 知識點匯總:
着重介紹幾個常用控件:
- 數據顯示控件
DataGridView控件
列設置
a)、列的寬度鋪滿這個控件
設置如下:把AutoSizeColumnsMode=Fill;//可以在屬性窗口中設置
b)、列名居中
代碼如下:
this.dataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; //設置表頭的格式(居中顯示)
c)、禁止編輯某列
代碼如下:
//禁止某一些列編輯
dataGridView1.ReadOnly = false; foreach (DataGridViewColumn c in dataGridView1.Columns) { if (c.Index != 2) c.ReadOnly = true; }
d)、禁止列點擊排序
代碼如下:
foreach (DataGridViewColumn c in dataGridView1.Columns)
{
c.SortMode = DataGridViewColumnSortMode.NotSortable;
}
e)、設置列的字體
this.dataGridView1.RowsDefaultCellStyle.Font = new Font("宋體", 10);
f)、設置列寬
this.dataGridView1.Columns[1].Width = 80; this.dataGridView1.Columns[2].Width = 60;
g)、設置列顯示模式
需要將第一列的單元格的內容全部顯示出來,代碼如下:
this.dataGridView1.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells ;
- 文本編輯控件
TextBox控件
1、常用方法:
(1)AppendText方法:把一個字符串添加到文件框中文本的后面,調用的一般格式如下:
文本框對象.AppendText(str) 參數 str是要添加的字符串。
(2)Clear方法:從文本框控件中清除所有文本。調用的一般格式如下:
文本框對象.Clear()該方法無參數。
(3)Focus方法:是為文本框設置焦點。如果焦點設置成功,值為 true,否則為false。調用的一般格式如下:
文本框對象.Focus()該方法無參數。
(4)Copy方法:將文本框中的當前選定內容復制到剪貼板上。調用的一般格式如下:
文本框對象.Copy()該方法無參數。
(5)Cut方法:將文本框中的當前選定內容移動到剪貼板上。調用的一般格式如下:
文本框對象.Cut()該方法無參數。
(6)Paste方法:用剪貼板的內容替換文本框中的當前選定內容。調用的一般格式如下:
文本框對象.Paste()該方法無參數。
(7)Undo 方法:撤銷文本框中的上一個編輯操作。調用的一般格式如下:
文本框對象.Undo()該方法無參數。
(8)ClearUndo方法:從該文本框的撤銷緩沖區中清除關於最近操作的信息,根據應用 程序的狀態,可以使用此方法防止重復執行撤銷操作。調用的一般格式如下:
文本框對象.ClearUndo()該方法無參數。
(9)Select方法:用來在文本框中設置選定文本。調用的一般格式如下:
文本框對象.Select(start,length)
該方法有兩個參數,第一個參數start用來設定文本框中當前選定文本的第一個字符的位 置,第二個參數length用來設定要選擇的字符數。
(10)SelectAll方法:用來選定文本框中的所有文本。調用的一般格式如下:
文本框對象.SelectAll()該方法無參數。
3、常用事件:
(1)GotFocus事件:該事件在文本框接收焦點時發生。
(2)LostFocus事件:該事件在文本框失去焦點時發生。
(3)TextChanged事件:該事件在Text屬性值更改時發生。無論是通過編程修改還是用戶交互更改文本框
的 Text屬性值,均會引發此事件。
- RichTextBox控件
- 輸入:RichTextBox1.Text = ""
- 輸出:ev.Graphics.DrawString (richTextBox1.Text);
- MaskedTextBOX控件
-
輸入:MaskedTextBox.text= 輸出:...=MaskedTextBox.text
-
- 數據綁定和數據定位控件
- BindingSource組件
- 沒有運行時界面,無法在用戶界面上看到該控件。BindingSource控件通過Current屬性訪問當前記錄,通過List屬性訪問整個數據表。
- BindingNavigator控件
- 輸入:this.txtName.DataBindings.Add("Text",bs,"Name");
- 輸出:正常通過DataGridView顯示
- BindingSource組件
- 音頻控件
- SoundPlayer控件
- 用戶幫助控件
- HelpProvider控件
-
輸入:HP = new HelpProvider();string Source = "Help.txt"; 輸出:HP.HelpNamespace = Source;HP.SetShowHelp(this, true);
- ToolTip組件
- this.toolTip1.SetToolTip(this.textBox1, "請輸入學生姓名。");
-
- HelpProvider控件
- 命令控件
- Button控件
- LinkLabel控件
- 菜單控件
- MenuStrip控件
- ContextMenuStrip控件
- 對話框控件
- ColorDialog控件
- OpenFileDialog控件
- PrintDialog控件
- 數據的設置控件
- DateTimePicker控件
- MonthCalendar控件
- 值的設置控件
- CheckBox控件
- ChecekListBox控件
- RadioButton控件
- TrackBar控件
- 圖形存儲控件
- ImageList控件
- 圖形顯示控件
- PictureBox控件
-
OpenFileDialog openPhotoDialog = new OpenFileDialog()Title = "打開照片文件(位圖格式)",Filter = "BMP Files (*.bmp)|*.bmp",InitialDirectory = @"C:\" this.PhotoFileName = openPhotoDialog.FileName;this.ptb_Photo.Image = Image.FromFile(this.PhotoFileName);
-
- PictureBox控件
- 從列表中選擇控件
- CheckedListBox控件
- ComboBox控件
-
輸出:
控件名.DataSource = 數據表; 控件名.DisplayMember = "列的名稱"; 數據表.ValueMember = "列的名稱";
select 我下拉列表菜單標簽
Option為下拉列表數據標簽
Value 為Option的數據值(用於數據的傳值)select 元素可創建單選或多選菜單。當提交表單時,會提交選定的項目,或者收集用逗號分隔的多個選項,將其合成一個單獨的參數列表,並且在將 表單數據提交給服務器時包括 name 屬性.
其中最要的是獲取給select下拉列表元素綁定一個change()事件,就是當這個元素的值發生改變的時候會觸發此方法,
然后還有一個就是獲取當前選中的option索引: var index = selectObj.selectedIndex;
var value = selectObj.options[index].value;
var text = selectObj.options[index].text;
其他知識點:
Location對象:
Location對象是Window對象的一個部分,可通過window.location屬性來訪問。
location.reload()刷新當前文檔
location.href 設置或返回完整的 URL。
top:
該變更永遠指分割窗口最高層次的瀏覽器窗口。如果計划從分割窗口的最高層次開始執行命令,就可以用top變量。
parent:
該變量指的是包含當前分割窗口的父窗口。如果在一個窗口內有分割窗口,而在其中一個分割窗口中又包含着分割窗口,則第2層的分割窗口可以用parent變量引用包含它的父分割窗口。 - DomainUpDown控件
- ListBox控件
- ListView控件
- NumericUpDown控件
- TreeView控件
- 網頁顯示控件
- WebBrowser控件
- 信息顯示控件
- Label控件
- LinkLabel控件
- StatusStrip控件
- ProgressBar控件
DataGridView控件、DateTimePicker控件、PhotoBox控件、textbox控件,如下例子:
DataGridView控件
SqlConnection sqlConnection = new SqlConnection(); //聲明並實例化SQL連接; sqlConnection.ConnectionString = "Server=(local);Database=ZXYY;Integrated Security=sspi"; //在字符串變量中,描述連接字符串所需的服務器地址、數據庫名稱、集成安全性(即是否使用Windows驗證); SqlCommand sqlCommand = new SqlCommand(); //聲明並實例化SQL命令; sqlCommand.Connection = sqlConnection; //將SQL命令的連接屬性指向SQL連接; sqlCommand.CommandText = "SELECT * FROM 科室;"; //指定SQL命令的命令文本;該命令查詢所有課程,以用作數據網格視圖數據源; SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(); //聲明並實例化SQL數據適配器; sqlDataAdapter.SelectCommand = sqlCommand; //將SQL數據適配器的查詢命令屬性指向SQL命令; sqlDataAdapter.MissingSchemaAction = MissingSchemaAction.AddWithKey; //設置SQL數據適配器在缺少架構時的動作為追加主鍵,從而獲取數據庫中定義的主鍵; this.ksTable = new DataTable(); //實例化本窗體的科室表,用於保存所有科室,以用作數據網格視圖數據源; sqlConnection.Open(); //打開SQL連接; sqlDataAdapter.Fill(this.ksTable); //SQL數據適配器讀取數據,並填充課程數據表; sqlConnection.Close(); //關閉SQL連接; this.ksViewByName = new DataView(); this.ksViewByName.Table = this.ksTable; this.ksViewByName.Sort = "科室編號 ASC"; //設置課程數據視圖的排序條件,即查詢所覆蓋的列; this.dgv_ks.Columns.Clear(); //數據網格視圖的列集合清空; this.dgv_ks.DataSource = this.ksTable; this.dgv_ks.Columns[this.dgv_ks.Columns.Count - 1].AutoSizeMode = //數據網格視圖的最后一列的自動調整列寬模式設為填充(至數據網格視圖右側邊緣); DataGridViewAutoSizeColumnMode.Fill;
頁面截圖,運行效果:
DateTimePicker控件、PhotoBox控件、textbox控件使用如圖:
OpenFileDialog openPhotoDialog = new OpenFileDialog() //聲明並實例化打開文件對話框; { //在初始化器中,設置打開文件對話框的各屬性; Title = "打開照片文件(位圖格式)" //對話框標題; , Filter = "BMP Files (*.bmp)|*.bmp" //文件格式過濾器; , InitialDirectory = @"C:\" //初始目錄; }; if (openPhotoDialog.ShowDialog() == DialogResult.OK) //顯示打開文件對話框,若打開文件對話框的對話結果為點擊OK鍵; { this.PhotoFileName = openPhotoDialog.FileName; //將對話框獲得的文件名,存入本窗體的私有字段中; this.ptb_Photo.Image = Image.FromFile(this.PhotoFileName); //調用圖像的靜態方法FromFile從指定文件中讀取圖像,並賦予圖像框; }
SqlConnection sqlConnection = new SqlConnection(); //聲明並實例化SQL連接; sqlConnection.ConnectionString = "Server=(local);Database=EduBaseDemo;Integrated Security=sspi"; //在字符串變量中,描述連接字符串所需的服務器地址、數據庫名稱、集成安全性(即是否使用Windows驗證); SqlCommand sqlCommand = new SqlCommand(); //聲明並實例化SQL命令; SqlCommand sqlCommand2 = new SqlCommand(); //聲明並實例化SQL命令; sqlCommand.Connection = sqlConnection; //將SQL命令的連接屬性指向SQL連接; sqlCommand2.Connection = sqlConnection; //將SQL命令的連接屬性指向SQL連接; sqlCommand.CommandText = "SELECT * FROM tb_Class;"; //指定SQL命令的命令文本;該命令查詢所有班級,以用作下拉框數據源; sqlCommand2.CommandText = "SELECT * FROM tb_Student WHERE No=@No;"; //指定SQL命令的命令文本;該命令查詢指定學生; sqlCommand2.Parameters.AddWithValue("@No", "3120707001"); //向SQL命令的參數集合添加參數的名稱、值; SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(); //聲明並實例化SQL數據適配器,同時借助構造函數,將其SelectCommand屬性設為先前創建的SQL命令; sqlDataAdapter.SelectCommand = sqlCommand; //將SQL數據適配器的查詢命令屬性指向SQL命令; DataTable classTable = new DataTable(); //聲明並實例化數據表,用於保存所有班級,以用作下拉框數據源; sqlConnection.Open(); //打開SQL連接; sqlDataAdapter.Fill(classTable); //SQL數據適配器讀取數據,並填充班級數據表; this.cmb_Class.DataSource = classTable; //將班級下拉框的數據源設為班級數據表; this.cmb_Class.DisplayMember = "Name"; //將班級下拉框的顯示成員設為班級數據表的名稱列; this.cmb_Class.ValueMember = "No"; //將班級下拉框的值成員設為班級數據表的編號列; SqlDataReader sqlDataReader = sqlCommand2.ExecuteReader(); //調用SQL命令的方法ExecuteReader來執行命令,並獲取數據閱讀器; if (sqlDataReader.Read()) //若數據閱讀器成功讀取到下一條記錄(首次查詢則表示第一條記錄); { this.txb_No.Text = sqlDataReader["No"].ToString(); //在數據閱讀器的索引器中指定列名,從而訪問當前記錄的指定列的值,並賦予相應控件; this.txb_Name.Text = sqlDataReader["Name"].ToString(); this.rdb_Male.Checked = (bool)sqlDataReader["Gender"]; this.rdb_Female.Checked = !(bool)sqlDataReader["Gender"]; this.dtp_BirthDate.Value = (DateTime)sqlDataReader["BirthDate"]; this.cmb_Class.SelectedValue = (int)sqlDataReader["ClassNo"]; this.txb_Speciality.Text = sqlDataReader["Speciality"].ToString(); } sqlDataReader.Close();