第六周学习笔记—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控件
-
1
2
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();