c#开发WinForm的几个小技巧

C# Winform开发教程 1.创建新的Winform工程 打开VS新建窗体应用就可以了,起个名字,设置路径 创建完毕后,会有一个Program.cs的脚本文件,这里的Main为入口函数。 2.窗体编辑 单击顶条区域,右侧弹出对应的属性栏。接下来只介绍几个常用的设置,其他各位可以自行去了解。 窗口样式 -> Icon:设置工具的icon。 窗口样式 -> MainMenuStrip:关联右键菜单(右键菜单的使用后面详解)。 设计 -> Name:本工具的脚本名(Program) ... 阅读详情
1.一个应用程序只能被用户打开一次
 Process mobj_pro =Process.GetCurrentProcess();
            Process[] mobj_proList
=Process.GetProcessesByName(mobj_pro.ProcessName);
            
if(mobj_proList.Length>1)
            
{
                MessageBox.Show(
"当前的应用程序已打开!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                
return;
            }

2.一个框架窗口下只打开一个子窗口
CustomerAdd pobj_CustomerAdd;  
            Form pobj_CustomerAdd_Return
=CheckIsExit("CustomerAdd");
            
if(pobj_CustomerAdd_Return==null)
            
{
                pobj_CustomerAdd
=new CustomerAdd();
                OpenSheet(pobj_CustomerAdd);
            }

            
else
            
{
                OpenSheet((CustomerAdd)pobj_CustomerAdd_Return);
            }
  

void OpenSheet(Form pobj_form)
        
{ 
            pobj_form.MdiParent
=this;
            pobj_form.Show(); 
        }


        
/// <summary>
        
/// 判断窗口是否存在
        
/// </summary>
        
/// <param name="ps_windowName">窗口的名称</param>
        
/// <returns>存在返回此窗口的实例 不存在返回null</returns>

        Form CheckIsExit(string ps_windowName)
        
{
            
for(int i=0;i<this.MdiChildren.Length;i++)
            
{
                
if(this.MdiChildren[i].Name==ps_windowName)
                
{
                    
return this.MdiChildren[i];
                }

            }

            
return null;
        }

3.弹出式窗口显示渐变效果
在页面上添加一个timer控件fadeTimer,interval设为50
类的实例变量为
private m_showing=true;
在form_load中写:
Opacity = 0.0;
            Activate();
            Refresh();
            fadeTimer.Start();
            Refresh();    
在timer控件的Tick事件中写:

if (m_showing)
            
{
                
double d = 1000.0 / fadeTimer.Interval / 100.0;
                
if (Opacity + d >= 1.0)
                
{
                    Opacity 
= 1.0;
                    fadeTimer.Stop();
                }

                
else
                
{
                    Opacity 
+= d;
                }

            }

            
else
            
{
                
double d = 1000.0 / fadeTimer.Interval / 100.0;
                
if (Opacity - d <= 0.0)
                
{
                    Opacity 
= 0.0;
                    fadeTimer.Stop();
                }

                
else
                
{
                    Opacity 
-= d;
                }

            }

4.在控件textbox中实现按回车键相当于tab键的作用
public class OSTextBox:TextBox
    
{
        
public OSTextBox()
        
{
            
        }


        
bool mb_IsKeyEnter=true;

        [
        Category(
"Data"),
        DefaultValue(
true),
        MergableProperty(
false)
        ]
        
public bool IsKeyEnter
        
{
            
get
            
{
                
return mb_IsKeyEnter;
            }

            
set
            
{
                mb_IsKeyEnter
=value;
            }

        }


        
protected override void OnKeyPress(KeyPressEventArgs e)
        
{
            
base.OnKeyPress (e);
            
if(mb_IsKeyEnter)
            
{
                
if (e.KeyChar == (char)Keys.Enter)
                
{
                    SendKeys.Send(
"{Tab}");
                }

            }

        }


    }
 
C# winform 开发总结 -- 【持续更新】 此文章将记录我在C# Winform 开发过程中遇到的问题及相关知识技术点 ,方便自己以后查阅.....博客列表:https://blog.youkuaiyun.com/column/details/winfrom-aps-net.htmlC# 在多线程中如何调用Winform问题的产生:   我的WinForm程序中有一个用于更新主窗口的工作线程(worker thread),但文档中却提示我不能在多线程... 阅读详情

相关推荐

C# WinForm常用的开源控件

记录C# WinForm常用的开源控件集1、Circular ProgressBar for WinForm2、Live Charts 1、Circular ProgressBar for WinForm Github地址:https://github.com/falahati/CircularProgressBar 2、Live Charts Github地址:https://github.c...

ssdnif的博客 3663

c# winform 设置winform进入窗口后在文本框里的默认焦点

进入窗口后默认聚焦到某个文本框,两种方法: ①设置tabindex 把该文本框属性里的tabIndex设为0,焦点就默认在这个文本框里了。 ②Winform的Activated事件 在Form的Activated事件中添加textBox1.Focus(), 即可获得焦点。 private void Form1_Activated(object sender,...

diaoshanwai2368的博客 831

C# 自定义控件开发及使用(WinForm)

C# 自定义控件及使用实例(WPF)开发目的开发流程创建控件库项目自定义控件的使用 开发目的 在使用C# WinForm开发时,工具箱中已经提供了十分丰富的控件库,利用这些基础控件我们可以开展各类项目的开发。 但是我们在开发具有类似的项目时,我们希望将相同类型的功能模块封装成标准的控件,以便在此后的项目开发中直接调用,从而提高工作效率。 提示:以下是本篇文章正文内容,下面案例可供初学者参考,若有改进之处请提出意见并加以批评,谢谢。 开发流程 本篇文章是记录自己在开发Trio运动控制器API函数时,也希望能

b29987064的博客 1万+

c#开发windows应用程序几个小技巧

From:http://elevenwolf.cnblogs.com/archive/2004/07/23/26969.html1.一个应用程序只能被用户打开一次 Process mobj_pro =Process.GetCurrentProcess();            Process[] mobj_proList=Process.GetProcessesByName(mobj_pro....

weixin_34107739的博客 163

[C#开发小技巧]解决WinForm控件TabControl闪烁问题

在WinForm程序开发时,常发现TabControl出现严重的闪烁问题,这主要是由于TabControl控件在实现时会绘制默认的窗口背景。其实以下一段简单的代码可以有效的缓解该问题的发生。这就是技巧的作用,不需要理解太多的知识,但需要多多积累,就能做到事半功倍的效果。 using System; using System.Collections.Generic; using Sys

风的专栏 5801

C# WinForm程序开发实战教程

C#(发音为“看”)是一种简单、现代、面向对象和类型的编程语言,由微软开发,作为.NET框架的一部分。它由Anders Hejlsberg领导的团队设计,并首次在2002年发布,随着.NET平台的演进,C#也不断进化。C#的设计哲学强调类型安全、模块化和版本兼容性,它被广泛用于开发Windows桌面应用程序、服务器端软件、游戏、Web应用程序、云服务以及移动应用程序。在C#中,几乎一切都是对象,它支持多种编程范式,包括过程化、面向对象以及泛型编程。

weixin_42163404的博客 1428

C# Winform程序界面优化实例

  进入移动互联网时代以来,Windows桌面开发已经很久不碰了。之前就是从做Windows开发入行的。  当年,还是C++ VC6, MFC的时代。那时候开发要查的是MSDN :-)。内存要自己管理, 排查内存泄漏(忘了释放分配的内存)也是基本日常。光阴似箭,岁月如梭~!  几年之前,北漂时需要写一个windows 的客户端,想招一个c#程序员,专职开发,结果压根就没有人投简历,-_-||,后来只好,亲力亲为。  个人觉得微软的开发环境,工具其实是非常好用的。好上手,效率高。没落的原因,应该主要是没有赶上

锅叔的博客 8648

c#自己做的小项目,适合练习

c#自己做的小项目,适合练习

winform 性能优化

转自http://blog.sina.com.cn/s/blog_618abceb010101on.html 1、使用性能测试工具dotTrace 3.0,它能够计算出你程序中那些代码占用内存较多 2、强制垃圾回收 3、多dispose,close 4、用timer,每几秒钟调用:SetProcessWorkingSetSize(Process.GetCurrentProces

李趣趣的学习笔记 4024

C#winform书店系统

1、 分析与设计一个小型网上书店网站或应用,能够实现用户登陆、注册、查询、报表统计等功能; 2、实现登录用户的身份和权限认证,系统根据用户所具有的权限,允许用户进行合法的操作; 3、注册会员可以查看自己的购物车,向其中添加、删除和排序商品,最后下单付款; 4、查看自己的浏览商品记录。

30天学通C#项目案例开发 完整版

30天学通C#项目案例开发 完整版

[ C#+Winform开发 ] 基于C#+Winform开发的串口通讯小工具

这是基于c#和winform的可视化串口小工具

wxf5522的博客 2523

20个C#项目实战开发及项目全部源码

最近开始学C#,以前学C#的朋友給我丢过来这个文件,感觉很不错的优质代码,分享给大家看看

C# 实现 WinForm 全屏置顶

我们在运行一些 Windows 应用程序的时候,需要将其运行在窗体置顶的模式(使其它应用窗体无法遮挡在置顶应用窗体之上),并且进入全屏状态。本文将介绍如何使用 C# 来实现 WinForm 的全屏置顶的基本功能。

初九之潜龙勿用 7139

稳定性性能系列之五——Native Crash深度分析:工具实战

深入理解Native Crash的机制与分析方法,掌握addr2line、ndk-stack、gdb等核心工具的实战使用,学会从Tombstone文件中快速定位问题根因

Cheson的专栏 1548

C++常见面试题总结

C++常见面试题总结

xu_fu_yong的专栏 8万+

C#+Winform开发窗体程序

学习笔记 第一章:winform基础 一、概述 1、Windows Form(简称WinForm) 是微软.NET平台下用于开发"图形界面"应用程序的组件。 2、C/S架构 客户机(Client)/服务器(Server),是软件系统体系结构。 通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统...

weixin_30667301的博客 3530

香橙派5Max + Realsense D435i + Fast-Drone-250:手把手教你搭建一个完整的无人机视觉开发环境

本文详细介绍了如何利用香橙派5Max、Realsense D435i深度相机和Fast-Drone-250项目搭建完整的无人机视觉开发环境。从硬件连接到ROS配置,再到项目部署与性能优化,提供全栈式实战指南,助力开发者快速实现SLAM算法验证和自主导航功能开发。

weixin_30879169的博客 464

C#的WinForm开发

界面卡顿:使用多线程代码混乱:拆分类重复代码:工具类封装WinForms 虽然并非最前沿的桌面开发技术,但在学习 C#、理解事件驱动模型、掌握桌面应用开发本质方面,仍然具有极高的教学与实践价值。通过本文的系统学习,可以完整建立:WinForms 桌面开发完整知识体系企业级桌面应用的工程化思维C# 桌面程序开发的实战能力。

2201_76127077的博客 1684

V4L2教程(1):Ubuntu V4L2开发环境搭建与设备探索

欢迎来到V4L2学习指南的第一篇!本文将带你从零开始,在Ubuntu系统上搭建完整的V4L2视频采集开发环境。无论你是想开发视频监控、视频会议还是机器视觉应用,掌握V4L2都是Linux视频开发的必经之路。 **本节学习目标**: - 理解V4L2的基本概念和架构 - 搭建Ubuntu下的V4L2开发环境 - 掌握v4l2-ctl等调试工具的使用 - 学会检测和配置USB摄像头设备

琅嬛福地 417

基于YOLOv8的植物生长阶段识别系统设计与实现

本文详细介绍了一个基于YOLOv8深度学习模型的植物生长阶段识别系统,包含完整的数据集构建、模型训练、评估以及基于PyQt5的用户界面开发过程。系统能够自动识别植物在不同生长阶段(如发芽期、生长期、开花期、结果期等)的形态特征,为精准农业和智能种植提供技术支持。文章提供了完整的代码实现,并讨论了模型优化策略和实际应用场景。关键词:植物生长阶段识别、YOLOv8、目标检测、PyQt5、深度学习。

YOLO 466

c# winform项目开发中常用到得一些小技巧

c# winform项目开发中常用到得一些小技巧 (1)DataGridView绘制行头序号 有时DataGridView加载的数量行比较多,而用户需要根据行号来判读数据,此时在DataGridView控件的行头加上序号是十分必要的。 在dgv的RowPostPaint事件里处理,完整代码如下: private void dgv_RowPostPaint(object sender, Da

济济的专栏 2154

【入门AUTOSAR网络管理测试】RSS-PBM状态转换

随着智能电动汽车行业的快速发展,目前AUTOSAR网络管理也得到了广泛应用,AUTOSAR网络管理测试也是汽车网络测试中非常重要的环节,NM问题导致的汽车ECU不能唤醒、电瓶亏电等问题,对于新入门AUTOSAR网络管理测试的同学不清楚如何开展测试,那么本章节就主要给大家介绍网络管理中RSS-PBM状态转换如何测试。【入门AUTOSAR网络管理测试】AUTOSAR网络管理规范需求解读。

测试领域技术分享 872
上一篇: NetTier模板生成的代码框架用法
下一篇: 关于CodeSmith不能保存及输出中文的解决办法
ILOVEMSDN
博客等级 码龄21年 66粉丝 118原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值