扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
可视界面通常都用于与用户进行交互,所以是必学的一部分,
创新互联专业为企业提供屏南网站建设、屏南做网站、屏南网站设计、屏南网站制作等企业网站建设、网页设计与制作、屏南企业网站模板建站服务,十年屏南做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。C#下的可视界面我觉得在封装上弄得比较好,页面属性都放在Form1.Designer.cs文件的InitializeComponent()函数里,Form1.cs文件调用初始化函数,进行相关的事件的操作(如:经常所见的button的Click操作)。在visual studio的工具箱里可以拖动组建,右键选择属性可以设置组件的属性。
简单的窗口例子,当要关闭窗口的时候弹出对话框:
在Form1.cs文件里新建函数:
private void Form1_FormClosing(object sender, FormClosingEventArgs e) { DialogResult dr = MessageBox.Show("是否关闭窗体?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); if (dr == DialogResult.Yes) { e.Cancel = false; } else { e.Cancel = true; } }
在Form1.Designer.cs文件里的InitializeComponent()函数中设置:
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form1_FormClosing);
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form1_FormClosing);
表示窗口的FormClosing属性通过调用Form1_FormClosing函数实现。
窗体可以调用Show()、Hide()和Close()方法。另外有触发窗体事件的Activated事件、Load事件,和FormClosing事件的语法格式类似。
常用控件及其简单设置
1.Label控件:
label1.Font = new Font("楷体", 12); label1.Text = "再累也要开心D"; label2.ForeColor = Color.Blue;
2.TextBox控件:
textBox1.PasswordChar = '@';//根据自己的喜好设置密码显示的方式 textBox2.UseSystemPasswordChar = true;//设置默认的系统密码显示 textBox1.ReadOnly = true;//只读属性 textBox1.Multiline = true;//设置多行显示
3.RichTextBox控件:(可以显示字体、颜色、链接、文本加载、图像功能)
实例:button1打开文件、button2打开图片。richTextBox1显示文件和图片内容;
设置richTextBox1的属性:
richTextBox1.BorderStyle = BorderStyle.Fixed3D;//设置边框样式 richTextBox1.DetectUrls = true;//设置自动识别超链接 richTextBox1.ScrollBars = RichTextBoxScrollBars.Both;//设置滚动条
点击button1后显示打开文件对话框,选择文件后再richTextBox1中显示文件内容:
OpenFileDialog openfile = new OpenFileDialog();//实例化打开文件对话框 openfile.Filter = "rtf文件(*.rtf)|*.rtf";//设置文件筛选器 if (openfile.ShowDialog() == DialogResult.OK) { richTextBox1.Clear();//清空文本框 //加载文件 richTextBox1.LoadFile(openfile.FileName, RichTextBoxStreamType.RichText); }
同理,显示图片的设置:
OpenFileDialog openpic = new OpenFileDialog(); openpic.Filter = "bmp文件(*.bmp)|*.bmp|jpg文件(*.jpg)|*.jpg|ico文件(*.ico)|*.ico"; openpic.Title = "打开图片"; if (openpic.ShowDialog() == DialogResult.OK) { Bitmap bmp = new Bitmap(openpic.FileName);//使用选择的图片实例化Bitmap对象 Clipboard.SetDataObject(bmp, false);//将图像置于系统剪贴板中 //判断richTextBox1控件是否可以粘贴图片信息 if (richTextBox1.CanPaste(DataFormats.GetFormat(DataFormats.Bitmap))) richTextBox1.Paste(); }
Button控件:
button1.BackgroundImage = Properties.Resources.a; button1.BackgroundImageLayout = ImageLayout.Stretch;//拉伸图像 button2.Image = Properties.Resources.a; button2.ImageAlign = ContentAlignment.MiddleLeft;//设置图片对齐方式 button3.FlatStyle = FlatStyle.Flat;//设置button3的外观样式 button3.Text = "确定"; button4.TextAlign = ContentAlignment.MiddleRight;//设置文本对齐方式
GroupBox控件:(分组控件,其所包含的控件集周围显示边框和标题,但没有滚动条)
TabControl控件:
设置选项卡的外观样式:
tabControl1.Appearance = TabAppearance.Normal;
实例:点击button1后增加一个选项卡,button2移除一个选项卡
//声明一个字符串变量,用于生成新增选项卡的名称 string Title = "新增选项卡 " + (tabControl1.TabCount + 1).ToString(); TabPage tp = new TabPage(Title); //使用tabcontrol控件的tabpages属性的add方法添加新的选项卡 tabControl1.TabPages.Add(tp);
移除选项卡:
if (tabControl1.SelectedIndex == 0) { MessageBox.Show("请选择要移除的选项卡"); } else { tabControl1.TabPages.Remove(tabControl1.SelectedTab); }
MenuStrip控件(菜单栏——拖动控件就可以进行相关设置):
另在输入框输入“新建(&N)”会在运行时显示“新建(N)”,可以“Alt+N”来调用
ToolStrip控件(工具栏——下拉栏有8个不同类型的控件——这个控件没怎么用,说不太清楚)
Button:包含文本和图象中可以让用户选择的项;
Label:包含文本和图象的项,不可以让用户选择,可以显示超链接
SplitButton:在Button的基础上增加一个下拉列表
DropDownButton:用于下拉列表选择项
Separator:分隔符
ComboBox:显示一个Combox的项
TextBox和ProgressBar和ComboBox的意义类似。
StatusStrip控件:
放在窗体的最底部,用于显示窗体对象的一些相关信息。
窗体加载时显示系统当前时间:
toolStripStatusLabel1.Text="当前时间:"+DateTime.Now.ToLongTimeString();
ListBox控件:
实例:用ListBox显示获取到的文件列表
设置ListBox属性:
listBox1.HorizontalScrollbar = true;//水平 listBox1.ScrollAlwaysVisible = true;//垂直 listBox1.SelectionMode = SelectionMode.MultiExtended;//实现在控件中选择多项
点击button1(打开文件)后:
//实例化浏览文件夹对话框 FolderBrowserDialog fbd = new FolderBrowserDialog(); if (fbd.ShowDialog() == DialogResult.OK) { //获取选择的文件夹的路径 textBox1.Text = fbd.SelectedPath; //使用获取的文件夹路径实例化DirectoryInfo类对象 DirectoryInfo dinfo = new DirectoryInfo(textBox1.Text); //获取指定文件夹下的所有子文件夹及文件 FileSystemInfo[] finfo = dinfo.GetFileSystemInfos(); //将获取到的子文件夹及文件添加到ListBox控件中 listBox1.Items.AddRange(finfo); label2.Text = "(" + listBox1.Items.Count + "项}"; }
选择ListBox其中的项:
private void listBox1_SelectedIndexChanged(object sender, EventArgs e) { label3.Text = "你选择的是:"; for(int i = 0 ; i < listBox1.SelectedItems.Count ; i++) { label3.Text += listBox1.SelectedItems[i]+"、"; } }
ListView控件:(主用于显示带图标的列表项)
实例(为ListView的Group添加项,另外可以设置添加、移除和清空项功能):
listView1.View = View.SmallIcon;//设置View属性,设置样式 //为listView1建立两个组 listView1.Groups.Add(new ListViewGroup("名称", HorizontalAlignment.Left)); listView1.Groups.Add(new ListViewGroup("类别", HorizontalAlignment.Left)); listView1.Items.Add("name1"); listView1.Items.Add("name2"); listView1.Items.Add("lei1");
对上面的项进行分组(设置它们的Group属性):
//添加到第一个分组的写法 listView1.Items[0].Group = listView1.Groups[0]; //加入第二分组 listView1.Items[2].Group = listView1.Groups[1];
添加项:
listView1.Items.Add(textBox1.Text.Trim());
删除项:
listView1.Items.RemoveAt(listView1.SelectedItems[0].Index); listView1.SelectedItems.Clear();
清空项:
listView1.Items.Clear();
TreeView控件:(用于显示节点层次结构)
treeView1.ContextMenuStrip = contextMenuStrip1;//设置树控件的快捷菜单 TreeNode tn = treeView1.Nodes.Add("根节点"); TreeNode pn1 = new TreeNode("节点1"); //将节点1放到根节点下的节点中 tn.Nodes.Add(pn1); TreeNode cn1 = new TreeNode("节点1下的节点"); pn1.Nodes.Add(cn1); //快捷菜单下的全部展开跟全部折叠 treeView1.ExpandAll(); treeView1.CollapseAll();
treeView1也通常和p_w_picpathList控件用,一起显示带图片的节点:
p_w_picpathList1.Images.Add(Image.FromFile("1.png")); p_w_picpathList1.Images.Add(Image.FromFile("2.png")); treeView1.ImageList = p_w_picpathList1; p_w_picpathList1.ImageSize = new Size(16,16); //设置treeView1控件节点的图标在p_w_picpathList1控件中的索引时0 treeView1.ImageIndex = 0; //选择某个节点后显示的图标在p_w_picpathList1控件中的索引为1 treeView1.SelectedImageIndex = 1;
ImageList控件:(主用于存储图片资源,然后在控件中显示出来,简化图片的管理)
p_w_picpathList1.ColorDepth = ColorDepth.Depth42Bit;//设置图像的颜色深度
加载图片:
p_w_picpathList1.Images.Clear();//清除图像 string Path = "C:\\Users\\lucky\\Desktop\\1.jpg"; Image img = Image.FromFile(Path, true); p_w_picpathList1.Images.Add(img); p_w_picpathList1.ImageSize = new Size(215, 135); //设置pictureBox1的图像索引时p_w_picpathList1控件索引为0的图片 pictureBox1.Image = p_w_picpathList1.Images[0];
清除图片:
p_w_picpathList1.Images.RemoveAt(0); pictureBox1.Image = null;
登陆常用到的KeyUp事件:
private void txtUserName_KeyUp(object sender, KeyEventArgs e) { if (e.KeyValue == 13)//判断是否按下Enter键 txtUserPwd.Focus(); }
字体滚动实例:
private void timer1_Tick(object sender, EventArgs e) { //设置label1左边缘与其容器的工作区左边缘之间的距离 label1.Left -= 2; //当label1右边缘与其容器的工作区左边缘之间的距离小于0时 if (label1.Right < 0) { //设置label1左边缘与其容器的工作区左边缘之间的距离为该窗体的宽度 label1.Left = this.Width; } }
开始滚动:
timer1.Enabled = true;
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流