c#winform_c#winform皮肤 - CSDN
精华内容
参与话题
  • 1)WinForm?Windows窗体应用程序 WinForm 是 Windows Form 的简称,是基于 .NETFramework 平台的... C# WinForm 编程需要创建「Windows窗体应用程序」项目。 .NET 提供了大量 Windows 风格的控件和事件,我们...

       1)WinForm? Windows窗体应用程序

                  WinForm 是 Windows Form 的简称,是基于 .NET Framework 平台的客户端(PC软件)开发技术, 一般使用 C# 编程。

           C# WinForm 编程需要创建「Windows窗体应用程序」项目。

          .NET 提供了大量 Windows 风格的控件和事件,我们可以直接拿来使用,上手简单,开发快速。

            Windows窗体应用程序:

                   Windows 窗体应用程序也称为事件驱动程序,也就是通过鼠标单击界面上的控件、通过键盘输入操作控件等操作来触            发控件的不同事件完成相应的操作。例如单击按钮、右击界面、向文本框中输入内容等操作。

      2)创建WinForm程序

                   文件”→“新建”→“项目”命令,弹出如下图所示的对话框。

                       完成 Windows 窗体应用程序的创建,如下图所示

            在每一个 Windows 窗体应用程序的项目文件夹中,都会有一个默认的窗体程序 Form1.cs,并且在项目的 Program.cs 文件中指定要运行的窗体。

            Program.cs

       3)控件和向工具箱中添加新的控件

                     选择“视图”→“工具箱”,如下图所示:

              在工具箱中将控件划分为公共控件、容器、菜单和工具栏、数据、组件、打印、对话框等组。

                                     

                      向工具箱中添加新的控件, 或者对工具箱中的控件重置或进行分组         

                                                   

                      在右键菜单中选择“选择项”命令,弹出如下图所示的对话框。

               在该对话框中列出了不同组件中所带的控件,如果需要在工具箱中添加,直接选中相应组件名称前的复选框即可。

              如果需要添加外部的控件,则单击“浏览”按钮,找到相应控件的 .dll .exe 程序添加即可。

               

     

     

     

     

     

     

     

     

    展开全文
  • C#WinForm——基础知识

    千次阅读 2019-06-06 11:40:56
    MessageBox的几种常见用法第一种第二种第三种第四种第五种 第一种 MessageBox.Show("你确定想要删除吗?"); 第二种 MessageBox.Show("你确定想要删除吗?", "提示");...if (MessageBox.Show("你确定想要删除吗?...

    MessageBox的几种常见用法

    1. 简单
    MessageBox.Show("你确定想要删除吗?");
    

    在这里插入图片描述
    2. 增加上面提示标题

    MessageBox.Show("你确定想要删除吗?", "提示");
    

    在这里插入图片描述
    3. 增加取消按钮

    if (MessageBox.Show("你确定想要删除吗?", "提示",
       	MessageBoxButtons.OKCancel) == DialogResult.OK)
       	{
       		// delete
       	}
    

    在这里插入图片描述
    4. 增加图标

    if (MessageBox.Show("你确定想要删除吗?", "提示", MessageBoxButtons.OKCancel, 
       MessageBoxIcon.Question) == DialogResult.OK)
        {
          //delete
        }
    

    在这里插入图片描述
    5. 定义默认选择取消

    if (MessageBox.Show("你确定想要删除吗?", "提示", MessageBoxButtons.OKCancel, 
    	MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) 
    	== DialogResult.OK)
         {
          //delete
         }
    

    在这里插入图片描述

    事件参数object sender, EventArgs e的理解

    参数sender

    sender表示触发事件的那个控件。若同一类控件处理方法相同,可以只写一个事件处理。(如:多个Button处理方法相同)就需要用到sender这个参数,这时需要把sender转换为相应类型的控件即可。
    如:TextBox textbox = sender as TextBox;

    例:四个Button单击,显示Button内容

    private void button1_Click(object sender, EventArgs e)
           {
               Button mybtn = sender as Button;
               MessageBox.Show(mybtn.Text);
           }
    

    参数e

    e参数包含了事件所携带的信息,它用来辅助处理事件。
    若e不是EventArgs 类本身,而是其子类(如:KeyPressEventArgs e),那么在写事件过程的时候往往会用到该对象e的属性或方法。如:e.Handled、 e.KeyChar。

    例:控制文本框只能输入数字、.或退格键。
    PS:e.Handled=true表示阻止输入字符, e.KeyChar表示用户输入的字符

    private void txtNum_KeyPress(object sender, KeyPressEventArgs e)
            {
                if (e.KeyChar >= '0' && e.KeyChar <= '9')
                {
                    e.Handled = false; //不阻止,表示输入的是数字,则可以输入
                }
                else
                {
                    if ((e.KeyChar == '.') || e.KeyChar == '\b')
                    {
                        e.Handled = false; //表示退格键或.可以输入
                    }
                    else
                    {
                        e.Handled = true; //其他阻止,即是不可以输入
                    }
                }
    }
    

    遍历窗体控件

     foreach (Control item in this.Controls)
                {
                    if (item is TextBox) 	// 清空TextBox内容
                    {
                        item.Text = "";
                    }
                    if (item is RadioButton)	// 重置RadioButton(选择男)
                    {
                        RadioButton r = (RadioButton)item;
                        r.Checked = false;
                        rdMale.Checked = true;
                    }
                    if (item is CheckBox)	// 重置CheckBox
                    {
                        CheckBox ck = (CheckBox)item;
                        ck.Checked = false;
                    }
                }
    

    ListBox列表框常用属性

    • Items属性
      — Items .Add(object item) 向选项列表添加选项(添加一项)
      —Items .AddRange(object[] items) 向选项列表添加选项(添加多项)
      —Items .Remove(object value) 从集合中移除指定对象
      —Items .RemoveAt(int index) 移除集合中指定索引的项
      —Items .Insert(int index, object item) 向选项列表添加选项(添加到指定位置)
      —Items .Clear() 清除列表框的所有项
      —Items[int index] 获取或设置集合中指定索引处的项
      —Items .Count() 获取集合中的项数

    例:listBox1.Items.Add(“aa”);
    例:listBox1.Items.AddRange(new string[] {“aa”, “bb”});
    例:listBox1.Items.Remove(“aaa”);
    例:listBox1.Items.RemoveAt(0);
    例:listBox1.Items.Insert(1, “bbb”);
    例:listBox1.Items.Clear();
    例:listBox1.Items[0] --> “aaa”
    例:listBox1.Items[0] = “aaa”;
    例:listBox1.Items.Count(); --> 3

    • SelectedItems属性
      获取包含在当前选定的项的集合
      —SelectedItems.Count 表示被选择的项目的数目
      —SelectedItems[i] 根据指定索引获取被选择的项,即获取被选择的i项

    例:listBox1.SelectedItems.Count // 10个里面选择了3个 则值为3
    例:listBox1.SelectedItems[2] // 从被选择的3个里面,取第三个的值

    • SelectedItem属性
      获取或设置当前被选择的1项

    例:listBox.SelectedItem // 获取选择中的第一项的值
    例:listBox.SelectedItem = “aaa” // ????

    • SelectedIndex
      获取或设置选中项的索引(从0开始)

    例:listBox.SelectedIndex --> 2 (选择了第3、5、6条数据)
    例:listBox.SelectedIndex = 2 // 将第3条数据设置为选中状态

    TreeView控件

    —TreeNode tn1 = new TreeNode(string text, TreeNode[] children) 设置节点
    —treeView1.Nodes.Add(string text / TreeNode node) 添加节点
    —treeView1.SelectedNode.Level 获取深度
    —treeView1.ExpandAll() 展开所有节点

    展开全文
  • C#图形界面入门 Winform

    万次阅读 多人点赞 2017-12-16 15:42:10
    C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员Anders Hejlsberg的最新成果。C#看起来与Java有着惊人的相似;它...

    C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员Anders Hejlsberg的最新成果。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司 .NET windows网络框架的主角。

    C#使得C++程序员可以高效的开发程序,且因可调用由 C/C++ 编写的本机原生函数,因此绝不损失C/C++原有的强大的功能。因为这种继承关系,C#与C/C++具有极大的相似性,熟悉类似语言的开发者可以很快的转向C#。[2] 

    WinForm是·Net开发平台中对Windows Form的一种称谓。

    开发工具 ------C# VS2013或者VS其他版本

    1. 写本教程的目的是为了能让学习C#的童鞋们能够快速的使用【图形界面】搭建开发环境,希望对您有帮助,如果您觉得好,请点个赞或者也可以收藏。

    2. 首先我们打开VS2013,依次【文件】=》【新建】=》【项目】

    3. 然后我们选择C#  【windows窗体应用程序】,输入项目名称和解决方案名称就行了,名字随意吧。默认是WindowsFormsApplication4,说明以前已经建立过三个项目了,这个不是重点。

    4. 接下来我们看看生成的项目文件和结构,左边是一个windows窗体,右边是windows项目的文体

      1. 项目包含两个主要的文件Program.cs和App.config

        (1)、查看Program文件

        namespace WindowsFormsApplication4

        {

            static class Program

            {

                /// <summary>

                /// 应用程序的主入口点。

                /// </summary>

                [STAThread]

                static void Main()

                {

                    Application.EnableVisualStyles();

                    Application.SetCompatibleTextRenderingDefault(false);

                    Application.Run(new Form1());

                }

            }

        }

        这个文件说明了程序的入口点,也就是main函数,最开始执行的地方,我们可以看到       Application.Run(new Form1());From1就是建立的窗口程序的名称,

      2. (2)、查看App.config文件

        <?xml version="1.0" encoding="utf-8" ?>

        <configuration>

            <startup> 

                <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1" />

            </startup>

        </configuration>

        这里边标记的是配置文件,记录的有.net版本,4.5.1,当然如果是VS2010等版本,默认的是.NET4.0,都是能够运行的,.net版本,4.5.1  和NET4.0都是程序运行的环境,就相当于自己种花,然后这花必须依赖于泥土一样,泥土就是.NET,暂时这么比喻吧

      3. 图形界面C#开发

        那么看了系统的结构,下面我们来实践一下,做一个小例子吧

        我们做一个按钮,然后点击弹出输入的信息.

        我们找到【工具】=》【选择项】,VS左边的就会出现工具箱了,包含各类的控件,有文本框(TextBox),复选框(CheckBox),下拉框、Grid表格等等。。。。我们讲解最基本的例子吧。

      4. 从左侧拖动一个TextBox和Button,也就是文本框和按钮到窗口上,此时我们可以点击到按钮和文本框,鼠标右键=》【属性】,修改按钮默认的文字和名称,我们把button1修改为点击,按钮的名称修改为btnSave,修改的目的是便于以后使用,便于区别button1,button2等等,顾名思义以后直接根据名称编写对应的功能和事件就行了。

      1. 然后双击【按钮】会生成一个事件,如下,我们可以在这个按钮的事件方法中编写自己的功能

          private void btnSave_Click(object sender, EventArgs e)

                {

                }

      2. 修改代码如下:

      3. private void btnSave_Click(object sender, EventArgs e)

      4.         {

                    MessageBox.Show(textBox1.Text);

                }

        注意加粗的代码意思就是显示您要输入的文本,textBox1代表的是文本框控件的名称,textBox1.Text就是这个控件的文本值, MessageBox.Show当然就是把这个显示出来了,比较简单吧。

      5. 然后我们点击【运行】或者Ctrl+5直接运行,就可以运行你的程序了,如果按的是F5也可以运行,这个是带有调试信息的,可以使用VS工具跟踪整个系统运行的变量、方法、执行过程等等(可以自己尝试一下)

      6. 查看运行结果,我们随意输入一个51diysoft文本,点击就会显示这个输入的内容了

        基本上图形界面的使用思路就是这样,拖动控件,然后编写代码,这个是入门,另外我们可以查看拖动的代码生成的源文件,等到后边的话,我们是需要自己编写代码的了,请记住“拖动不是万能的”

        题外话:我们来研究一下拖动的控件生成的代码

        #region Windows 窗体设计器生成的代码

                /// <summary>

                /// 设计器支持所需的方法 - 不要

                /// 使用代码编辑器修改此方法的内容。

                /// </summary>

                private void InitializeComponent()

                {

                    this.btnSave = new System.Windows.Forms.Button();

                    this.textBox1 = new System.Windows.Forms.TextBox();

                    this.SuspendLayout();

                    // 

                    // btnSave

                    // 

                    this.btnSave.Location = new System.Drawing.Point(121, 202);

                    this.btnSave.Name = "btnSave";

                    this.btnSave.Size = new System.Drawing.Size(75, 23);

                    this.btnSave.TabIndex = 0;

                    this.btnSave.Text = "点击";

                    this.btnSave.UseVisualStyleBackColor = true;

                    this.btnSave.Click += new System.EventHandler(this.btnSave_Click);

                    // 

                    // textBox1

                    // 

                    this.textBox1.Location = new System.Drawing.Point(61, 107);

                    this.textBox1.Name = "textBox1";

                    this.textBox1.Size = new System.Drawing.Size(100, 21);

                    this.textBox1.TabIndex = 1;

                    // 

                    // Form1

                    // 

                    this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);

                    this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;

                    this.ClientSize = new System.Drawing.Size(284, 262);

                    this.Controls.Add(this.textBox1);

                    this.Controls.Add(this.btnSave);

                    this.Name = "Form1";

                    this.Text = "Form1";

                    this.ResumeLayout(false);

                    this.PerformLayout();

                }

                #endregion

                private System.Windows.Forms.Button btnSave;

                private System.Windows.Forms.TextBox textBox1;

        我们可以理解到标记颜色的地方其实就是声明了一个按钮和文本框然后,设置位置,文本的名称,控件的颜色等等,一般的属性,我们都是可以通过鼠标右键来进行设置【属性】的,


    5. 再次记住一句话“拖控件不是万能的”。


    展开全文
  • C#--WinForm项目主窗体设计

    万次阅读 多人点赞 2017-09-18 08:49:20
    主窗体基本设置大小、颜色、去边框、出现的位置 Panel控件背景图、颜色、布局:Label标签文本、字体、背景颜色、布局 按钮布局、文本、字体颜色、背景色、 底部panel绑定控件边框、颜色用label标签...

    主窗体基本设置

    这里写图片描述


    大小、颜色、去边框、出现的位置

    这里写图片描述

    这里写图片描述

    这里写图片描述

    这里写图片描述


    Panel控件

    这里写图片描述

    背景图、颜色、布局:

    这里写图片描述

    这里写图片描述

    这里写图片描述

    Label标签

    这里写图片描述

    文本、字体、背景颜色、布局
    这里写图片描述

    这里写图片描述

    这里写图片描述

    这里写图片描述


    按钮

    这里写图片描述

    布局、文本、字体颜色、背景色、
    这里写图片描述

    这里写图片描述

    这里写图片描述

    这里写图片描述


    底部panel

    绑定控件边框、颜色

    这里写图片描述

    这里写图片描述

    用label标签导入图标
    这里写图片描述


    SplitContainer容器

    这里写图片描述

    拖放时直接放不好操作设置属性:

    这里写图片描述
    设置不绑定到容器的边框
    这里写图片描述

    设置颜色
    这里写图片描述

    这里写图片描述

    这里写图片描述

    拖放调整合适大小:

    这里写图片描述

    固定左边panel1 不可拖动:

    这里写图片描述

    禁止全部panel不可拖动:
    这里写图片描述

    设置间距距离

    这里写图片描述


    左边框按钮

    这里写图片描述


    美化方法嵌入子窗体的设计

    这里写图片描述
    设置大小 和去除边框

    这里写图片描述

    这里写图片描述

    组合框的俩种设计方法

    这里写图片描述

    颜色、用户不可输入、布局
    这里写图片描述


    第二种组合框设计:

    这里写图片描述

    由一个按钮和panel、ListView:
    panel边框单一模式

    这里写图片描述

    ListView
    这里写图片描述

    这里写图片描述

    项目代码下载

    展开全文
  • C# winform 开发总结 -- 【持续更新】

    千次阅读 2020-05-04 11:18:35
    此文章将记录我在C# Winform 开发过程中遇到的问题及相关知识技术点 ,方便自己以后查阅.....博客列表:https://blog.csdn.net/column/details/winfrom-aps-net.htmlC# 在多线程中如何调用Winform问题的产生: 我的...
  • C# WinForm显示GIF动态图片

    万次阅读 2018-04-16 10:55:11
    WinForm自带的Label:AutoSize属性设置为false;Text属性为空;Image属性指定GIF图片;ImageAlign属性设置图片位置;
  • winform 窗体把控件置于顶层和底层   this.Controns.SetChildIndex(Contron,index);     panel.BringToFront();//置于顶层 panel.SendToBack();//置于底层
  • C#Winform窗体与界面设计

    千人学习 2018-11-08 16:22:16
    本课程是针对C#Winform开发人员的基础性课程,详尽的介绍C#Winform窗体与界面的设计,通过提供实例,让C#Winform开发人员掌握相关程序设计技巧,为后面学习完整的实战课程打下较好的基础。
  • C# Winform 窗体美化(二、LayeredSkin 界面库)

    万次阅读 多人点赞 2017-04-15 08:37:42
    二、LayeredSkin 窗口美化库概况这部分资源是 Winform 美化最多的了,效果还不错,使用时只需引入 LayeredSkin.dll - 696 KB 即可。网上能找到的最后 LayeredSkin 版本应该是 LayeredSkin Demo2014-12-10.zip,之后...
  • winForm如何调用WebApi接口

    万次阅读 2018-01-15 17:46:33
    因为本人接触的项目属于C/S结构的偏多,一直没有机会接触webApi,所以一直觉得webApi很神秘。刚好最近有时间,所以我就在网上搜了一些webApi的资料,然后结合winform写了一个Dome:  WebApi winform
  • C# WinForm中添加用户控件

    万次阅读 2014-11-01 15:49:17
    有的时候默认提供的工具
  • C# WinForm开发框架

    万次阅读 多人点赞 2019-06-29 08:42:10
    自己一直想有一个完全属于自己的编程小框架,之前使用的方式是将每一个窗体文件都编译为一个DLL文件,在新建窗体的时候首先新建一个类,然后在这个类 里面新建窗体,编译之后就是一个DLL文件,最后通过一个函数去...
  • WinForm大型企业ERP系统

    万次阅读 2017-12-25 11:41:08
    WinForm大型企业ERP系统
  • C# Winform界面中的分隔线问题

    千次阅读 2017-07-04 01:37:05
    Winform中实现一个分割线,具体操作如下: (1)拖一个Label标签控件 (2)属性中的AutoSize设置为False(这样就可以手动设置大小了) (3)将Size尺寸中的大小第二个参数高度设置为2,宽度设置为你想要的大小 ...
  • 198个经典C#WinForm实例源码 超赞的完整版

    千次下载 热门讨论 2020-07-30 23:30:36
    "198个经典C#WinForm实例源码"包括: 1-窗体技巧 2-控件操作 3-图像操作 4-报表打印 5-系统操作 6-文件处理 7-网络操作 8-数据库操作 9-加密解密 10-硬件读写 11-游戏设计 "超赞的198个经典C#WinForm实例源码.zip " ...
  • 在另一个窗口中修改好listview控件数据,并能在listview立刻显示出来。 怎么实现求大神指点!谢谢
  • C# WinForm 默认最大化

    千次阅读 2013-08-01 00:48:43
    只需要在窗口的Shown事件处理函数中修改 WindowState即可this.WindowState = FormWindowState.Maximized;
  • C#winform RadioButton使用技巧

    万次阅读 2015-05-17 02:07:02
    C# winform 中同组多个RadioButton使用技巧方法,因为用到了,总结归类一下,做个记录 可以先定义一个方法,用来处理该组RadioButton,如下: public void AllRadio_CheckedChanged(object sender, EventArgs e)...
  • 把pannel里面的多个按钮的那个anchor属性全部去掉,如下图: 再用VS2010自带的工具调一下即可:
1 2 3 4 5 ... 20
收藏数 87,495
精华内容 34,998
关键字:

c#winform