Winform重难点笔记

本文介绍了WindowsForm编程中的部分类(FrmMain.cs与FrmMain.Designer.cs)概念,以及事件处理(如btnTest_Click事件)、消息提示框的使用、密码文本框设置、语音合成、文件对话框过滤和单选框分组等关键点。
摘要由CSDN通过智能技术生成
  1. FrmMain.cs 中的 partial(部分的) 和 FrmMain.Designer.cs 中的 partial 一样,不是一个类的修饰符,是限定这个类本身的组成部分,叫做部分类。当程序在编译和运行时,会把 FrmMain.cs 中的 FrmMain 类 和 FrmMain.Designer.cs 中的 FrmMain 类会编译成一个类。
  2.   如果想使用控制台查看运行结果,在项目右键属性-->应用程序输出类型-->控制台应用程序
  3. 窗体代码由两部分构成:窗体的直接代码 Form1.cs 和设计器生成的代码 Form1.Designer.cs,一般 Form1.Designer.cs 的代码我们不需要去动它。
        
  4. 解释一下这句代码 this.btnTest.Click += new System.EventHandler(this.btnTest_Click); 这里的 btnTest.Click 是一个事件委托,通过 += 多播的形式,记录所有的点击事件。这里的 this.btnTest_Click 其实就是 FrmMain.cs 代码中生成的事件方法。
  5. private void btnTest_Click(object sender, EventArgs e)
    {
        Console.WriteLine("点击了按钮");
        MessageBox.Show("点击了按钮");
    }

    事件处理程序(函数)
    参数1: 绑定事件的这个控件(比如上面的代码中sender实际上就是代指按钮1这个控件,但实际使用时,因为这里是object类型,因此需要进行强制转换例如Button b1=(Button)sender  )
     参数2: 事件对象 不同的事件,拥有不同的事件对象

  6. 下拉框的重要事件:SelectedIndexChanged :当用户选择的下拉项改变的时候发生

  7. 合理使用消息提示框,因为每次弹出都需要用户去做处理,弹出的频率和次数过高,用户也是会感觉很反感的。现在大多数的提示后可以在界面上直接提示,比如:登录注册时,直接在文本框的后面显示红色的小字提示

  8.  参数1: 提示信息
    MessageBox.Show("弹出框");
    参数2:设置弹出框的标题
    MessageBox.Show("弹出框","窗口标题");
    参数3:设置一个MessageBoxButtons类型的枚举参数4:设置图标
    参数5:设置默认第几个按钮是默认选中的
    MessageBox.Show("弹出框", "窗口标题",MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk,MessageBoxDefaultButton.Button2);

  9. MessageBox的返回值,是枚举类型,可以通过判断枚举的类型来进行下一步操作(如下)

      private void button1_Click(object sender, EventArgs e)
      {
          
          DialogResult res =MessageBox.Show("确认退出吗",
     "退出页面", MessageBoxButtons.AbortRetryIgnore);
    
          if(res==DialogResult.Abort)System.Environment.Exit(0);
     
     }
  10. 创建密码文本框:

    (1)UseSystemPasswordChar属性设置为True。

    (2)PasswordChar属性设置为`*`。(可选  设置后调用系统自带`*`较丑)

  11. winform文字转语音 先添加引用,然后写入命名空间using System.Speech.Synthesis;创建朗读类                  private SpeechSynthesizer testvoice;     testvoice.Speech("朗读文本即可");还有音色合成,速度等高阶玩法,需自行搜索。

  12. ToolTip控件 添加该控件后可以鼠标移动控件(如按钮,或窗体)提示一句话(以气泡形式显示),注意,要先打开ToolTip控件的OwnerDraw属性为true,然后创建ToolTip的Draw事件,最后气泡显示的内容自定义,在要提示的控件上的属性==>杂项==>tooltip上的toc定义(如button),tooltip的draw事件代码如下:

     private void toolTip1_Draw(object sender, DrawToolTipEventArgs e)
     {
         e.Graphics.FillRectangle(Brushes.Lime, e.Bounds);
         e.DrawText();
     }
  13. OpenFileDialog和SaveFileDialog设置默认保存类型用.Filter属性去设置,注意如果用判断要写到判断外,Filter 属性通常包含两个部分,用竖线 | 分隔:第一部分是文件类型描述,它会显示在文件对话框的下拉列表中;第二部分是由括号包围的文件扩展名,用于过滤显示的文件类型。在这个"文本文件|*.(txt)中,只有 .txt 文件会被显示。最全版本                            "文本文件 (*.txt)|*.txt;*.bak|*.log|*.csv" + "图像文件 (*.bmp;*.jpg;*.jpeg;*.png)|*.bmp;*.jpg;*.jpeg;*.png" + "文档文件 (*.doc;*.docx)|*.doc;*.docx" + "可执行文件 (*.exe)|*.exe" + "所有文件 (*.*)|*.*";

  14. 单选框RadioButton,在同一组容器中,一组RadioButton只能有一个选中状态,因此当我们在一个页面有两组以上单选框,可以使用容器分开,推荐使用panel和groupbox

  15. Panel的最大作用是可以直接在页面设置器上直接将控件添加到Contral属性中,所有置于Panel内的控件会作为一个整体进行管理和操作,简化了用户界面的设计与维护。

  • 14
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: .NET WinForm是一种用于开发Windows桌面应用程序的技术框架。我在使用.NET WinForm开发过程中积累了一些经验和心得,现将其总结如下。 首先,.NET WinForm具有丰富的控件库,并且提供了灵活的布局方式。我们可以根据需要选择合适的控件来设计用户界面,并通过属性和事件的设置来实现交互功能。此外,WinForm还支持多种布局方式,例如流式布局、表格布局等,能够满足不同界面设计的需求。 其次,开发过程中要注意控件的命名规范和代码的结构化。一个良好的命名规范可以使代码更易读、易维护,并且方便与团队合作。另外,将代码按功能模块进行组织,可以提高代码的可读性和可维护性。 另外,对于数据处理方面,我们可以使用.NET提供的ADO.NET来进行数据库的操作。ADO.NET提供了一套完整的对象模型,可以方便地连接、查询和更新数据库。此外,为了提高性能,我们可以使用数据绑定技术将数据与控件进行关联,从而实现数据的显示和编辑。 此外,为了提高用户体验,我们可以使用多线程来处理耗时的操作。在WinForm中,主线程负责界面的渲染和响应用户操作,而通过新建一个后台线程来处理耗时任务,可以避免界面的阻塞,提高用户体验。 最后,为了保证应用程序的稳定性和可靠性,我们需要进行适当的异常处理。在编写代码的过程中,我们应该考虑到各种可能出现的异常情况,并编写相应的异常处理代码,以防止程序崩溃或出现不可预料的错误。 综上所述,使用.NET WinForm进行开发可以帮助我们快速构建功能丰富的Windows桌面应用程序。在开发过程中,我们应该注意控件的选择和布局的合理安排,遵循良好的命名规范和代码结构化,合理处理数据和耗时操作,添加适当的异常处理,以保证应用程序的稳定性和可靠性。 ### 回答2: .NET WinForm是一种使用C#或其他.NET支持的语言开发的桌面应用程序的框架。在.NET WinForm开发过程中,我积累了一些经验和技巧,我将在下面的笔记中进行总结。 首先,我要着强调良好的用户界面设计。一个简洁、直观和易用的界面对于用户来说非常要,因此在设计界面时,我会参考标准的用户体验原则和设计规范,确保界面元素的布局合理,按钮和菜单项的命名清晰明了。 其次,我经常使用控件的继承和自定义控件来提高开发效率和代码复用性。通过继承现有控件,并添加自定义功能或修改样式,可以快速创建符合特定需求的控件。这样可以减少代码的复编写,并且便于后续的维护和扩展。 此外,我会尽量避免在界面上编写过多的业务逻辑。为了保持界面的简洁和响应速度,我将业务逻辑封装在独立的类中,并使用事件机制进行交互。这样可以实现界面和数据的解耦,提高代码的可维护性和可测试性。 对于数据的处理,我会使用.NET提供的数据绑定机制。通过将数据源与控件进行绑定,可以简化数据的展示和操作,减少手动编写代码的工作量。同时,数据绑定还可以实现数据的实时更新和显示,提升用户体验。 最后,我会使用调试工具和日志记录来帮助定位和解决问题。.NET WinForm提供了丰富的调试功能,如断点调试、条件断点和调试输出等。通过适当的调试设置和日志记录,可以及时发现问题,并进行相关的修复和优化。 总之,这些是我在.NET WinForm开发过程中的一些心得体会。良好的界面设计、控件的继承和自定义、业务逻辑和界面的解耦、数据绑定的使用以及调试工具和日志记录的运用,都是我在开发过程中要的思考和实践。我相信通过不断学习和尝试,我将能够提高开发效率和代码质量,为用户创造出更好的应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值