C#常用小技巧之常用命令(持续更新)

目录

一、关闭上位机(关闭所有线程,与点击右上角的“X”一个效果)

二、加入各种引用方法(以引入system.management为例)

三、检测组合键弹出对话框,并获取输入内容

四、ini文件读写,文件不存在则创建文件,自动创建文件夹

五、多窗体同意界面相互切换与传输数据


一、关闭上位机(关闭所有线程,与点击右上角的“X”一个效果)

Application.Exit();

二、加入各种引用方法(以引入system.management为例)

右键项目名称->添加->引用。 在弹出的界面,左侧选择“程序集”–>选择框架,然后查找management即可,在system.management前的框上点击打上勾,点击确定即可。

三、检测组合键弹出对话框,并获取输入内容

a、将窗体属性KeyPreview改成True,如图:

b、给窗体添加KeyDown事件

c、事件中加入代码

private void Form1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.Modifiers == (Keys.Alt | Keys.Control) && e.KeyCode == Keys.Z)//同时按下Alt+Ctrl+Z
    {
        string str = Interaction.InputBox("请输入验证码", "请输入验证码", "请输入验证码", -1, -1);
        if (str.ToUpper() == "ABC")//输入的是 ABC(不区分大小写),ToUpper()将输入的字母变成大写
        {

        }
        else
        {

        }
    }            
}

注:需要添加 using Microsoft.VisualBasic;项目中加入引用参考上述【2】。

四、ini文件读写,文件不存在则创建文件,自动创建文件夹

[DllImport("kernel32")]
private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
[DllImport("kernel32")]
private static extern int GetPrivateProfileString(string section, string key, string defVal, StringBuilder retVal, int size, string filePath);
[DllImport("kernel32")]
private static extern int GetPrivateProfileString(string section, string key, string defVal, Byte[] retVal, int size, string filePath);
private string IniFilePath;
public static bool Write_ini(string 段, string 键名, string 键值, string 文件路径)
{
    /*
        [段1]
        键名1=键值1
        键名2=键值2
        [段2]
        键名1=键值1
        键名2=键值2
        */
    try
    {
        WritePrivateProfileString(段, 键名, 键值, 文件路径);
        return true;
    }
    catch
    {
        return false;
    }
}
public static int Read_ini(string 段, string 键名, string 文件路径, out string value)
{
    StringBuilder temp = new StringBuilder(1024);
    try
    {
        int i = GetPrivateProfileString(段, 键名, "", temp, 1024, 文件路径);
        value = temp.ToString();
        return i;
    }
    catch
    {
        value = "Error";
        return 0xff;
    }
}
void 读配置()
{
    IniFilePath = Application.StartupPath + "\\Drivers\\Config.ini";
    if (File.Exists(IniFilePath))//存在
    {
    }
    else
    {
        string 文件夹 = IniFilePath.Substring(0, IniFilePath.LastIndexOf('\\'));
        Directory.CreateDirectory(文件夹);//如果文件夹不存在就创建它

        File.WriteAllText(IniFilePath, string.Empty, System.Text.Encoding.Unicode); //<--确定创建的是UNICODE文件
    }
        string 备注名;
        int Read授权码 = Read_ini("JDQTEXT", "JDQ1", IniFilePath, out 备注名);
        if (Read授权码 > 0)
        {  //
            textBox1.Text = 备注名;
        }
        else
        {

        }
    
}
void 保存配置()
{
        Write_ini("JDQTEXT", "JDQ1", textBox1.Text, IniFilePath);
}

五、多窗体同意界面相互切换与传输数据

1、在项目中添加多个用户窗体

这里我添加了三个用户控件,命名分别为 参数设置、操作界面、时间期限

2、主窗体中添加panel容器用于显示多个窗体,命名为:panel展示多窗体,再添加一个label控件作为中转站,命名为:当前界面

 

 

注:panel展示多窗体的尺寸要跟切换展示的窗体尺寸一致,这样可以避免显示丢失等问题。 

 3、主窗体中添加代码:

 

public 参数设置 参数设置窗体; //创建用户控件一变量
public 操作界面 操作界面窗体; //创建用户控件二变量
public 时间期限 时间期限窗体; //创建用户控件三变量

参数设置窗体 = new 参数设置();    //实例化参数设置窗体
操作界面窗体 = new 操作界面();    //实例化操作界面窗体
时间期限窗体 = new 时间期限();    //实例化时间期限窗体

4、三个用户控件窗体添加一个汉字表示界面,两个跳转button

 

5、给项目添加一个类,命名为:Public 类 窗体传数据

6、添加代码,窗体当前显示界面作为传递变量

 

public static string 窗体当前显示界面;

 

7、在主界面添加代码:定时器中断和当前界面TextChanged事件 

private void 定时器100ms_Tick(object sender, EventArgs e)
        {
            当前界面.Text = Public_类_窗体传数据.窗体当前显示界面;
        }


        private void 当前界面_TextChanged(object sender, EventArgs e)
        {
            switch (当前界面.Text)
            {
                case "跳转时间期限界面":
                    时间期限窗体.Show();   //将窗体一进行显示
                    panel展示多窗体.Controls.Clear();    //清空原容器上的控件
                    panel展示多窗体.Controls.Add(时间期限窗体);    //将窗体一加入容器panel
                    break;
                case "跳转参数设置界面":
                    参数设置窗体.Show();   //将窗体一进行显示
                    panel展示多窗体.Controls.Clear();    //清空原容器上的控件
                    panel展示多窗体.Controls.Add(参数设置窗体);    //将窗体一加入容器panel
                    break;
                case "跳转操作界面":
                    操作界面窗体.Show();   //将窗体一进行显示
                    panel展示多窗体.Controls.Clear();    //清空原容器上的控件
                    panel展示多窗体.Controls.Add(操作界面窗体);    //将窗体一加入容器panel
                    break;
            }
        }

8、参数设置窗体中添加事件代码


        private void button1_Click(object sender, EventArgs e)
        {
            Public_类_窗体传数据.窗体当前显示界面 = "跳转时间期限界面";

        }

        private void button2_Click(object sender, EventArgs e)
        {

            Public_类_窗体传数据.窗体当前显示界面 = "跳转操作界面";
        }

9、操作界面窗体中添加事件代码


        private void button1_Click(object sender, EventArgs e)
        {
            Public_类_窗体传数据.窗体当前显示界面 = "跳转时间期限界面";
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Public_类_窗体传数据.窗体当前显示界面 = "跳转参数设置界面";

        }

10、时间期限窗体中添加事件代码

 


        private void button1_Click(object sender, EventArgs e)
        {
            Public_类_窗体传数据.窗体当前显示界面 = "跳转参数设置界面";
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Public_类_窗体传数据.窗体当前显示界面 = "跳转操作界面";
        }

完成。 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值