c#windows窗体应用程序序学习问题

我想学的是:
相关课程推荐c#windows应用程序基础_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
c#windows应用程序基础
上传于||文档简介
&&C​#​学​习​必​知​教​程
大小:4.11MB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢您的举报已经提交成功,我们将尽快处理,谢谢!
最好的方式是问出租车司机,路上有的是,多问几个.
大家还关注
(window.slotbydup=window.slotbydup || []).push({
id: '2081942',
container: s,
size: '1000,60',
display: 'inlay-fix'用Visual Studio 开发Windows 窗体应用程序(单机用)要学哪些内容?
软件主要结合Access 数据库,对Access 数据库内容关键字检索,并反馈检索内容到窗口中
按投票排序
我录制有一门在线课程《我的第一门编程课(C#版)》,,除去里面Entity Framework的内容,自己自学ADO.NET的内容,基本上可以满足你的需求。
开头先得吐槽一句,网上的winform视频教程真的太少了!只找到了一个口音很重的视频。。很蛋疼。。我是从零开始学的winform,说说大概学了点什么。首先c#基本语法这个必学不多说。题主所说的数据库连接实际上属于c#基本语法部分,个人觉得与winform无关。然后开始熟悉怎么拖控件,修改属性,各个属性的一般意义。接下来就是控件的各个事件以及通过代码绑定的方法,这个百度能找到很多。到这里基本能满足题主的要求。进阶的话,学习委托。用于窗体传值。说实话,我个人觉得c#委托很蛋疼,不如其他语言的监听之类的好用。再接下来,学习GDI+。用于自制控件图标,我记得百度上有一些代码,建议拆开来慢慢研究。景上添花的一点,用户控件,用熟了可以帮你省很多时间,而且不难。我只说了要学什么,具体的不展开,大概整个学习周期在两三个月左右。
已有帐号?
无法登录?
社交帐号登录13651人阅读
C#学习笔记(41)
窗体是程序与用户交互的可视界面,窗体也是对象,窗体类定义了生成窗体的模版,实例化一个窗体类就产生了一个窗体。.NET框架类库的System.Windows.Forms命名空间中定义的Form类是所有窗体类的基类。1、常用属性属性:图标、标题、位置、背景等可在窗体属性面板设置,也可以代码实现。(1)Name属性:用来获取或设置窗体的名称,在应用程序中可通过Name属性来引用窗体。(2)WindowState属性:用来获取或设置窗体的窗口状态。取值有三种:Normal(窗体正常显示)、Minimized(窗体以最小化形式显示)和Maximized(窗体以最大化形式显示)。(3)StartPosition属性:用来获取或设置运行时窗体的起始位置。(4)Text属性:该属性是一个字符串属性,用来设置或返回在窗口标题栏中显示的文字。(5)AcceptButton属性:该属性用来获取或设置一个值,该值是一个按钮的名称,当按Enter键时就相当于单击了窗体上的该按钮。(6)CancelButton属性:该属性用来获取或设置一个值,该值是一个按钮的名称,当按Esc键时就相当于单击了窗体上的该按钮。(7)Modal属性:该属性用来设置窗体是否为有模式显示窗体。如果有模式地显示该窗体,该属性值为true;否则为false。当有模式地显示窗体时,只能对模式窗体上的对象进行输入。必须隐藏或关闭模式窗体(通常是响应某个用户操作),然后才能对另一窗体进行输入。有模式显示的窗体通常用做应用程序中的对话框。(8)ActiveControl属性:用来获取或设置容器控件中的活动控件。窗体也是一种容器控件。(9)ActiveMdiChild属性:用来获取多文档界面(MDI)的当前活动子窗口。(10)AutoScroll属性:用来获取或设置一个值,该值指示窗体是否实现自动滚动。如果此属性值设置为true,则当任何控件位于窗体工作区之外时,会在该窗体上显示滚动条。另外,当自动滚动打开时,窗体的工作区自动滚动,以使具有输入焦点的控件可见。(11)Enabled属性:用来获取或设置一个值,该值指示控件是否可以对用户交互作出响应。如果控件可以对用户交互作出响应,则为true;否则为false。默认值为true。(12)KeyPreview属性:用来获取或设置一个值,该值指示在将按键事件传递到具有焦点的控件前,窗体是否将接收该事件。值为true时,窗体将接收按键事件,值为false时,窗体不接收按键事件。(13)ShowInTaskbar属性:用来获取或设置一个值,该值指示是否在Windows任务栏中显示窗体。(14)Visible属性:用于获取或设置一个值,该值指示是否显示该窗体或控件。值为true时显示窗体或控件,为false时不显示。(15)Capture属性:如果该属性值为true,则鼠标就会被限定只由此控件响应,不管鼠标是否在此控件的范围内。2、常用方法自身窗体 this.hide();其它窗体Form2 f2 = new Form2();f2.Show();下面介绍一些窗体的最常用方法。(1)Show方法:该方法的作用是让窗体显示出来,其调用格式为:窗体名.Show();其中窗体名是要显示的窗体名称。(2)Hide方法:该方法的作用是把窗体隐藏出来,其调用格式为:窗体名.Hide();其中窗体名是要隐藏的窗体名称。(3)Refresh方法:该方法的作用是刷新并重画窗体,其调用格式为:窗体名.Refresh();其中窗体名是要刷新的窗体名称。(4)Activate方法:该方法的作用是激活窗体并给予它焦点。其调用格式为:窗体名.Activate();其中窗体名是要激活的窗体名称。(5)Close方法:该方法的作用是关闭窗体。其调用格式为:窗体名.Close();其中窗体名是要关闭的窗体名称。(6)ShowDialog方法:该方法的作用是将窗体显示为模式对话框。其调用格式为:窗体名.ShowDialog();&3.常用事件为窗体、控件添加事件在属性面板的“事件”选项卡里操作。(1)Load事件:该事件在窗体加载到内存时发生,即在第一次显示窗体前发生。(2)Activated事件:该事件在窗体激活时发生。(3)Deactivate事件:该事件在窗体失去焦点成为不活动窗体时发生。(4)Resize事件:该事件在改变窗体大小时发生。(5)Paint事件:该事件在重绘窗体时发生。(6)Click事件:该事件在用户单击窗体时发生。(7)DoubleClick事件:该事件在用户双击窗体时发生。(8)Closed事件:该事件在关闭窗体时发生。&4. 添加事件以窗体Load事件为例:Load(加载)事件发生于Form窗体的加载时候,其设置步骤如下。(1)打开VS2008,新建一个Windows窗体应用程序,并命名为FormEventTest。(2)打开其Form1的属性窗口,切换到“事件”选项卡(一个闪电标志)(3)找到Load事件项,然后双击进入该事件代码编辑文件Form1.cs,为其编写代码。private void MainForm_Load(object sender, EventArgs e)
if (MessageBox.Show(&我是文本:查看窗体2&, &我是标题&, MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) == DialogResult.Yes)
Form2 f2 = new Form2();
f2.Show();
private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
DialogResult dr = MessageBox.Show(&是否关闭窗口&,&提示&,MessageBoxButtons.YesNo,MessageBoxIcon.Warning);
if (dr == DialogResult.Yes)
e.Cancel =
e.Cancel =
}事实上,和VB类似,直接在窗体上双击就会进入Load事件编辑代码&5.继承窗体继承窗体就是根据现有窗体的结构创建一个与其一样的新窗体,这种从现有窗体继承的过程称为可视化继承。两种方式创建继承窗体编程方式:继承选择器:&6.控件窗体由控件构成,控件分常用控件和高级控件,常用控件主要有文本类控件、选择类控件及分组控件等。C#控件的基类是System.Windows.Forms命名空间下的Control类文本类控件:Label、Button、TextBox、RichTextBox选择类控件:CheckBox、ComboBox、ListBox、RadioButton分组控件:GroupBox、Panel、FlowLayoutPanel、SplitContainer、TabControl、TableLayoutPanel&:介绍了多种常用控件的属性、方法和事件。&7. 特殊实现(1)启动欢迎界面将该界面设置为欢迎界面,添加Timer控件,倒计时数秒后启动主界面&(2)多窗体应用程序设置启动窗体在Program.cs中,改变Run方法的参数public static void Run(From mainFrom);例如:Application.Run(new Form1());其中,Form1为窗体名&(3)程序退出窗体相关事件this.hide(); //隐藏this.show(); 显示this.Close();& 关闭,注意会关闭整个应用程序Application.Exit(); 关闭,注意会关闭整个应用程序&(4)“接受”按钮、“取消”按钮private void Form1_Load(object sender, EventArgs e)
this.AcceptButton = button1; //设置为“接受”按钮,Enter键相当于单击该按钮
this.CancelButton = button2; //设置为“取消”按钮,Esc键相当于单击该按钮
}(5)启动浏览器打开网页System.Diagnostics.Process.Start(e.LinkText); //e.LinkText换成具体链接&(6)判断某字符串是否为数字型&&&&&&&&&&&&&&&&&&&&&& if(Int32.TryParse(textBox1.Text, out a))&&&&&&&&&&& {&&&&&&&&&&&&&&& //MessageBox.Show(&数字&);&&&&&&&&&&& }&&&&&&&&&&& else&&&&&&&&&&& {&&&&&&&&&&&&&&& MessageBox.Show(&非数字&);&&&&&&&&&&& }&8. 文本框 TextBox密码文本框:设置文本框的PasswordChar属性,或UseSystemPasswordChar属性多行文本框:Multiline属性设为True突出显示:设置SelecttionStart、SelectionLength属性&9. RichTextBox有格式文本控件,用于显式、输入和操作带有格式的文本,比如实现显式字体、颜色、链接、从文件加载文本、及嵌入的图形、撤销重复编辑操作以及查找字符串功能。private void Form1_Load(object sender, EventArgs e)
this.AcceptButton = button1; //设置为“接受”按钮,Enter键相当于单击该按钮
this.CancelButton = button2; //设置为“取消”按钮,Esc键相当于单击该按钮
richTextBox1.ScrollBars = RichTextBoxScrollBars.V //只显式垂直滚动条
richTextBox1.SelectionFont = new Font(&楷体&,12,FontStyle.Bold); //字体大小、加粗
richTextBox1.SelectionColor = System.Drawing.Color.B //字体颜色蓝色
richTextBox1.Text = &欢迎登录http://www.矿大&; //设置文本,自动加超链接
richTextBox1.SelectionBullet =//控件内容以项目符号列表的格式排列
richTextBox1.SelectionIndent = 8; //左边缘距离
richTextBox1.SelectionRightIndent = 12; //右边缘距离
richTextBox1.SaveFile(&C://tang.RTF&); //保存内容到文件,三种格式
//RichTextBox的链接点击消息处理
private void richTextBox1_LinkClicked(object sender, LinkClickedEventArgs e)
// 编写链接点击事件,启动浏览器浏览链接
System.Diagnostics.Process.Start(e.LinkText);
}&10.下拉组合框 ComboBox(1)DropDownStyle:设置样式Simple:列表部分总是可见DropDown:为默认值,可编辑文本框DropDownList:不能编辑文本框(2)SelectAll() 方法选择可编辑框的所有文本&11 复选框 CheckBoxCheckState属性:是否选中,值为Checked、Unchecked&12.单选按钮checked属性:是否选中职位True,&13.数值选择控件(1)用于显示和输入数值,提供上下箭头,用户可以直接输入,也可以用箭头修改数值Maximum:最大值Mininmun:最小值Value:值(2)显式格式DecimalPlaces:小数点后位数,默认0ThousandsSeparater:千分符,默认falseHexadecimal :十六进制显式&14.列表控件 ListView(1)添加删除项目:ListBox控件Items属性的Add方法、Remove方法(2)当前选中项目:ListBox的SelectedItem属性(3)多选:SelectionMode属性MultiExtended(可用Shift、Ctrl键)MultiSimple 多选One:单选None:无法选择(4)选中的项数listBox1.SelectedItems.Count.ToString(); 多选情况下样式、列标头、列宽设置listView1.View = View.D //视图样式,listView1.Columns.Add(&文件名&); //添加标头&&&&&&&&&&& listView1.Columns.Add(&路径&);listView1.Columns.Add(&大小&);listView1.Columns.Add(&创建时间&);listView1.Columns[0].Width = 100; //设置宽度listView1.Columns[1].Width = 200; //设置宽度listView1.Columns[2].Width = 100; //设置宽度listView1.Columns[3].Width = 100; //设置宽度&//添加项listView1.Items.Clear();& //清空listView1.Items.Add(processes[i].ProcessName);listView1.Items[listView1.Items.Count - 1].SubItems.Add(processes[i].Id.ToString());listView1.Items[listView1.Items.Count - 1].SubItems.Add(processes[i].Id.ToString());listView1.Items[listView1.Items.Count - 1].SubItems.Add(processes[i].Id.ToString());&15.分组控件Panel:GroupBox:分组框TabControl:选项卡(1)为选项卡设置图标,改变选项卡标题创建一个windows应用程序,向窗体添加一个ImageList控件,然后像ImageList控件添加图形列表;添加一个TabControl控件,将其ImageList属性设置为ImageList1控件,并将TabPage选项卡的ImageIndex属性设置为列表中相应图像的索引。可以直接在属性面板操作,也可以编写以下代码private void Form1_Load(object sender, EventArgs e)
tabControl1.ImageList = imageList1;
tabPage1.ImageIndex = 0;
tabPage1.Text = &选项卡1&;
tabPage2.ImageIndex = 2;
tabPage2.Text = &选项卡2&;
}&(2)将选项卡显示为按钮将TabControl控件的Appearence属性设置为Buttons或FlatButtons,可以将选项卡显示为按钮样式。(三维按钮、平面按钮)tabControl1.Appearance = TabAppearance.B&(3)在选项卡中新增控件private void button3_Click(object sender, EventArgs e)
Button btn1 = new Button();
btn1.Text = &新增按钮&;
tabPage1.Controls.Add(btn1);
}&(4)添加、移除选项卡添加:TabPages属性的Add方法string title = &新增选项卡& + (tabControl1.TabCount+1);TabPage myTabPage = new TabPage(title);tabControl1.TabPages.Add(myTabPage);删除:TabPages属性的Remove方法tabControl1.TabPages.Remove(tabControl1.SelectedTab);移除所有选项卡:TabPages属性的clear&(5)DataGridView列宽设置 无效?需要把列的 AutoSizeMode 属性设为None,宽度设置才会生效。列标题居中dataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleC //标题居中列居中对齐dataGridView1.Columns[0].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleC如何让全部列填充满整个控件?点击datagridview右上角的小三角-&&编辑列&-&选中最后一列-&右边的属性框有个“布局”-&&AutoSizeMode&的属性,设置它为Fill就Ok了dataGridView选中的时候选中正行而不是一个单元格dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowS //选中正行,而非单元格最左列的赋值datagridview.Rows[i].HeaderCell.Value 最左列的显示与改变宽度dataGridView1.RowHeadersVisible = //最左侧列 隐藏dataGridView1.RowHeadersWidth = 60;&&& //设置宽度防删除出错int indexid = dataGridView1.CurrentRow.I //当前行&&&&&&&&&&& //MessageBox.Show(dataGridView1.Rows.Count.ToString() + indexid.ToString());&&&&&&&&&&& if (indexid & 0 || indexid &= dataGridView1.Rows.Count - 1)&&&&&&&&&&& { }&&&&&&&&&&& else&&&&&&&&&&& {&&&&&&&&&&&&&&& if (MessageBox.Show(&确定删除吗?&, &提示&, MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)&&&&&&&&&&&&&&& {&&&&&&&&&&&&&&&&&&& dataGridView1.Rows.Remove(dataGridView1.CurrentRow);&&&&&&&&&&&&&&& }&&&&&&&&&&& }datagridview 控件左侧的固定列能显示出序号吗?(左侧的固定列有点宽,而且有一个右箭头,想让这一列能显示出递增的序号) private void dataGridView1_RowPostPaint_1(object sender, DataGridViewRowPostPaintEventArgs e)
Rectangle rowHeaderBounds = new Rectangle
2, e.RowBounds.Top,
this.dataGridView1.RowHeadersWidth-2, e.RowBounds.Height - 1
using (Brush backbrush =
new SolidBrush(SystemColors.Control))
e.Graphics.FillRectangle(backbrush, rowHeaderBounds);
if (e.RowIndex &= dataGridView1.FirstDisplayedScrollingRowIndex)
using (SolidBrush b = new SolidBrush(dataGridView1.RowHeadersDefaultCellStyle.ForeColor))
int linen = 0;
linen = e.RowIndex + 1;
string line = linen.ToString();
e.Graphics.DrawString(line, e.InheritedRowStyle.Font, b, e.RowBounds.Location.X, e.RowBounds.Location.Y + 5);
SolidBrush B = new SolidBrush(Color.Red);
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:543022次
积分:6690
积分:6690
排名:第2321名
原创:145篇
转载:39篇
评论:76条
(1)(3)(1)(7)(3)(1)(2)(11)(9)(6)(22)(33)(8)(9)(22)(35)(11)}

我要回帖

更多关于 c#窗体应用程序 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信