【WinForm】WinForm常见窗体技术汇总

news2024/10/9 13:22:10

文章目录

  • 前言
  • 一、窗体调用外部程序与渐变窗体
    • 1、效果
    • 2、界面设计
    • 3、代码
  • 二、按回车键跳转窗体中的光标焦点
    • 1、效果
    • 2、界面设计
    • 3、代码
  • 三、剪切板操作
    • 1、效果
    • 2、界面设计
    • 3、代码
  • 四、实现拖放操作
    • 1、效果
    • 2、界面设计
    • 3、代码
  • 五、移动的窗体
    • 1、效果
    • 2、界面设计
    • 3、代码
  • 六、抓不到的窗体
    • 1、效果
    • 2、界面设计
    • 3、代码
  • 七、MDI文本编辑器窗体
    • 1、效果
    • 2、界面设计
    • 3、代码
  • 八、提示关闭窗体
    • 1、效果
    • 2、界面设计
    • 3、代码
  • 总结


前言

  • 窗体调用外部程序与渐变窗体
  • 按回车键跳转窗体中的光标焦点
  • 剪切板操作
  • 实现拖放操作
  • 移动的窗体
  • 抓不到的窗体
  • MDI窗体
  • 提示关闭窗体

一、窗体调用外部程序与渐变窗体

1、效果

窗体正在变色:
在这里插入图片描述

窗体调用网络页面–启动浏览器:
在这里插入图片描述

窗体调用本地程序–启动记事本:

在这里插入图片描述

2、界面设计

在这里插入图片描述

3、代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;

namespace 调用外部程序与渐变窗体
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            this.timer1.Enabled = true;
            this.Opacity = 0;
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            if (this.Opacity < 1)
            {
                this.Opacity += 0.05;
            }
            else
            {
                this.timer1.Enabled = false;
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                Process proc = new Process();
                proc.StartInfo.FileName = "notepad.exe";//注意路径
                proc.StartInfo.Arguments = "";//运行参数
                proc.StartInfo.WindowStyle = ProcessWindowStyle.Maximized;//启动窗口状态
                proc.Start();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "注意", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            try
            {
                Process proc = new Process();
                Process.Start("IExplore.exe", "http://www.baidu.com");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "注意", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }

        private void button3_Click(object sender, EventArgs e)
        {
            try
            {
                Process proc = new Process();
                proc.StartInfo.FileName = @"E:\娱乐工具\qq2012\Bin\QQProtect\Bin\QQProtect";
                proc.Start();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "注意", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
    }
}

二、按回车键跳转窗体中的光标焦点

1、效果

按下enter键,光标会向下移动:
在这里插入图片描述

2、界面设计

在这里插入图片描述

3、代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace 回车跳转控件焦点
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        //private void txtName_KeyDown(object sender, KeyEventArgs e)
        //{
        //    if (e.KeyCode == Keys.Enter)
        //    {
        //        txtAge.Focus();
        //    }
        //}

        //private void txtAge_KeyDown(object sender, KeyEventArgs e)
        //{
        //    if (e.KeyValue == 13)
        //    {
        //        txtAge.Focus();
        //    }
        //}

        private void EnterToTab(object sender, KeyEventArgs e)
        {
            if (e.KeyValue == 13)
            {
                SendKeys.Send("{TAB}");     //等同于按Tab键
            }
        }
    }
}

三、剪切板操作

1、效果

第一个text中输入内容并选中,点击粘贴就粘贴到第二个text;
下方是图片的复制粘贴,方法一样。
在这里插入图片描述

2、界面设计

在这里插入图片描述

3、代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace 剪切板操作
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        /// <summary>
        /// 剪切
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, EventArgs e)
        {
            if (!textBox1.SelectedText.Equals(""))
                Clipboard.SetText(textBox1.SelectedText);
            else
                MessageBox.Show("未选中文本!");
        }

        /// <summary>
        /// 粘贴
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button2_Click(object sender, EventArgs e)
        {
            if (Clipboard.ContainsText())
                textBox2.Text = Clipboard.GetText();
            else
                MessageBox.Show("剪切板没有文本!");
        }

        /// <summary>
        /// 图片剪切
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button3_Click(object sender, EventArgs e)
        {
            openFileDialog1.FileName = "";
            openFileDialog1.Filter = "jpg文件(*.jpg)|*.jpg|bmp文件(*.bmp)|*.bmp";
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                pictureBox1.Image = new Bitmap(openFileDialog1.FileName);
                Clipboard.SetImage(pictureBox1.Image);
            }
        }

        /// <summary>
        /// 图片粘贴
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button4_Click(object sender, EventArgs e)
        {
            if (Clipboard.ContainsImage())
            {
                pictureBox2.Image = Clipboard.GetImage();
            }
        }
    }
}

四、实现拖放操作

1、效果

可以将listview中的节点项鼠标拖动到text中。
在这里插入图片描述

2、界面设计

在这里插入图片描述

3、代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace 实现拖放操作
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void lvSource_ItemDrag(object sender, ItemDragEventArgs e)
        {
            lvSource.DoDragDrop(e.Item, DragDropEffects.Copy);
        }

        private void txtMessage_DragEnter(object sender, DragEventArgs e)
        {
            e.Effect = DragDropEffects.Copy;
        }

        private void txtMessage_DragDrop(object sender, DragEventArgs e)
        {
            ListViewItem lvi = (ListViewItem)e.Data.GetData(typeof(ListViewItem));
            txtMessage.Text = lvi.Text;

            lvSource.Items.Remove(lvi);
        }
    }
}

五、移动的窗体

1、效果

窗体运行之后自动移动。
在这里插入图片描述

2、界面设计

在这里插入图片描述

3、代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace 个性化窗体界面
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        public int x=0;
        public int y=300;
        public bool panDuan = false;
        private void timer1_Tick(object sender, EventArgs e)
        {
            if (x == 1366)
                x = 0;
            this.Location = new Point(x, y);
            x += 1;
        }

        private void Form1_MouseEnter(object sender, EventArgs e)
        {
            timer1.Stop();
        }

        private void Form1_MouseLeave(object sender, EventArgs e)
        {
            if(!panDuan)
                timer1.Start();
        }

        private void tsmiExit_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void contextMenuStrip1_Opened(object sender, EventArgs e)
        {
            panDuan = true;
        }

        private void contextMenuStrip1_Closed(object sender, ToolStripDropDownClosedEventArgs e)
        {
            panDuan = false;
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            this.toolTip1.ToolTipTitle = "嘿嘿";
            this.toolTip1.SetToolTip(this, "看徒弟的憨样!");
        }
    }
}

六、抓不到的窗体

1、效果

此窗体中放入了一张图片,在飘啊飘,抓不到。
在这里插入图片描述

2、界面设计

在这里插入图片描述

3、代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace 抓不到的窗体
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        int x, y;
        int count = 0;
        Random rd = new Random();
        private void Form1_Load(object sender, EventArgs e)
        {
            this.toolTip1.ToolTipTitle = "嘿嘿";
            this.toolTip1.SetToolTip(this.pictureBox1, "人品不错,给你抓到了!点击退出!");

            this.timer1.Enabled = true;
            this.Opacity = 0;
        }

        private void pictureBox1_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void pictureBox1_MouseEnter(object sender, EventArgs e)
        {
            if (count == 10)
                MessageBox.Show("已经抓了" + count + "次了,可还是没抓到!", "哈哈", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            if (count == 20)
                MessageBox.Show("已经抓了" + count + "次了,是否继续?", "真佩服的坚持", MessageBoxButtons.OK, MessageBoxIcon.Question);
            if (count == 30)
            {
                if ((MessageBox.Show("已经抓了" + count + "次了,”倔驴“这个称号,就赠与你了!", "无语了", MessageBoxButtons.OK, MessageBoxIcon.Warning)) == DialogResult.OK)
                {
                    if ((MessageBox.Show("的人品已经降为负的了!", "注意", MessageBoxButtons.OK, MessageBoxIcon.Warning)) == DialogResult.OK)
                        this.Close();
                }
            }

            this.Opacity = 0;
            this.timer1.Enabled = true;

            x = rd.Next(0, 1300);
            y = rd.Next(0, 700);
            this.Location = new Point(x, y);
            count++;
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            if (this.Opacity < 1)
            {
                this.Opacity += 0.07;
            }
            else
            {
                this.timer1.Enabled = false;
            }
        }
    }
}

七、MDI文本编辑器窗体

1、效果

功能更强大的文本编辑器。
在这里插入图片描述

2、界面设计

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

3、代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace MDINotepad
{
    public partial class MainForm : Form
    {
        public MainForm()
        {
            InitializeComponent();
        }

        private void tsmiNewTxt_Click(object sender, EventArgs e)
        {
            NotepadForm childForm = new NotepadForm();
            childForm.Text = "新建文本文档.txt";
            childForm.MdiParent = this;
            childForm.Show();
        }

        private void tsmiNewRtf_Click(object sender, EventArgs e)
        {
            NotepadForm childForm = new NotepadForm();
            childForm.Text = "新建富文本文档.rtf";
            childForm.MdiParent = this;
            childForm.Show();
        }

        private void tsmiOpenFile_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.Filter = "富文本文档(*.rtf)|*.rtf|文本文档(*.txt)|*.txt";

            if (ofd.ShowDialog() == DialogResult.OK)
            {
                NotepadForm childForm = new NotepadForm(ofd.FileName);
                childForm.MdiParent = this;
                childForm.Show();
            }
        }

        private void tsmiExit_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void tsmiHorizontalLayout_Click(object sender, EventArgs e)
        {
            LayoutMdi(MdiLayout.TileHorizontal);
        }

        private void tsmiVerticalLayout_Click(object sender, EventArgs e)
        {
            LayoutMdi(MdiLayout.TileVertical);
        }

        private void tsmiCascadeLayout_Click(object sender, EventArgs e)
        {
            LayoutMdi(MdiLayout.Cascade);
        }

        private void tsmiMinimize_Click(object sender, EventArgs e)
        {
            foreach (Form childForm in MdiChildren)
            {
                childForm.WindowState = FormWindowState.Minimized;
            }
        }

        private void tsmiMaximize_Click(object sender, EventArgs e)
        {
            foreach (Form childForm in MdiChildren)
            {
                childForm.WindowState = FormWindowState.Maximized;
            }
        }

        private void tsmiAbout_Click(object sender, EventArgs e)
        {
            AboutForm af = new AboutForm();
            af.ShowDialog(this);
        }
    }
}

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace MDINotepad
{
    public partial class AboutForm : Form
    {
        public AboutForm()
        {
            InitializeComponent();
        }
    }
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace MDINotepad
{
    public partial class NotepadForm : Form
    {
        private int _currentCharIndex;

        #region Code segment for constructors.

        public NotepadForm()
        {
            InitializeComponent();
        }

        public NotepadForm(string filePath): this()
        {
            //判断文件的后缀名,不同的文件类型使用不同的参数打开。

            if (filePath.EndsWith(".rtf", true, null))
                rtbEditor.LoadFile(filePath,
                    RichTextBoxStreamType.RichText);
            else
                rtbEditor.LoadFile(filePath,
                    RichTextBoxStreamType.PlainText);

            Text = filePath;
        }

        #endregion

        #region Code segment for private operations.

        private void Save(string filePath)
        {
            try
            {
                //判断文件的后缀名,不同的文件类型使用不同的参数保存。

                if (filePath.EndsWith(".rtf", true, null))
                    rtbEditor.SaveFile(filePath,
                        RichTextBoxStreamType.RichText);
                else
                    rtbEditor.SaveFile(filePath,
                        RichTextBoxStreamType.PlainText);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        private void SaveAs()
        {
            sfdDemo.FilterIndex = Text.EndsWith(".rtf", true, null) ? 1 : 2;

            if (sfdDemo.ShowDialog() == DialogResult.OK)
            {
                Save(sfdDemo.FileName);
                Text = sfdDemo.FileName;
            }
        }

        #endregion

        #region Code segment for event handlers.

        private void tsmiSaveFile_Click(object sender, EventArgs e)
        {
            if (!System.IO.File.Exists(Text))
                SaveAs();
            else
                Save(Text);
        }

        private void tsmiSaveAs_Click(object sender, EventArgs e)
        {
            SaveAs();
        }

        private void tsmiBackColor_Click(object sender, EventArgs e)
        {
            cdDemo.Color = rtbEditor.SelectionBackColor;
            if (cdDemo.ShowDialog() == DialogResult.OK)
            {
                rtbEditor.SelectionBackColor = cdDemo.Color;
            }
        }

        private void rtbEditor_SelectionChanged(object sender, EventArgs e)
        {
            if (rtbEditor.SelectionLength == 0)
            {
                tsmiBackColor.Enabled = false;
                tsmiFont.Enabled = false;
            }
            else
            {
                tsmiBackColor.Enabled = true;
                tsmiFont.Enabled = true;
            }
        }

        private void tsmiFont_Click(object sender, EventArgs e)
        {
            fdDemo.Color = rtbEditor.SelectionColor;
            fdDemo.Font = rtbEditor.SelectionFont;
            if (fdDemo.ShowDialog() == DialogResult.OK)
            {
                rtbEditor.SelectionColor = fdDemo.Color;
                rtbEditor.SelectionFont = fdDemo.Font;
            }
        }

        private void pdEditor_PrintPage(object sender,
            System.Drawing.Printing.PrintPageEventArgs e)
        {
            //存放当前已经处理的高度

            float allHeight = 0;
            //存放当前已经处理的宽度

            float allWidth = 0;
            //存放当前行的高度
            float lineHeight = 0;
            //存放当前行的宽度
            float lineWidth = e.MarginBounds.Right - e.MarginBounds.Left;

            //当前页没有显示满且文件没有打印完,进行循环

            while (allHeight < e.MarginBounds.Height
                && _currentCharIndex < rtbEditor.Text.Length)
            {
                //选择一个字符

                rtbEditor.Select(_currentCharIndex, 1);
                //获取选中的字体

                Font currentFont = rtbEditor.SelectionFont;
                //获取文字的尺寸

                SizeF currentTextSize =
                    e.Graphics.MeasureString(rtbEditor.SelectedText, currentFont);

                //获取的文字宽度,对于字母间隙可以小一些,
                //对于空格间隙可以大些,对于汉字间隙适当调整。

                if (rtbEditor.SelectedText[0] == ' ')
                    currentTextSize.Width = currentTextSize.Width * 1.5f;
                else if (rtbEditor.SelectedText[0] < 255)
                    currentTextSize.Width = currentTextSize.Width * 0.6f;
                else
                    currentTextSize.Width = currentTextSize.Width * 0.75f;

                //初始位置修正2个像素,进行背景色填充

                e.Graphics.FillRectangle(new SolidBrush(rtbEditor.SelectionBackColor),
                    e.MarginBounds.Left + allWidth + 2, e.MarginBounds.Top + allHeight, 
                    currentTextSize.Width, currentTextSize.Height);
                
                //使用指定颜色和字体画出当前字符

                e.Graphics.DrawString(rtbEditor.SelectedText, currentFont, 
                    new SolidBrush(rtbEditor.SelectionColor), 
                    e.MarginBounds.Left + allWidth, e.MarginBounds.Top + allHeight);

                allWidth += currentTextSize.Width;

                //获取最大字体高度作为行高

                if (lineHeight < currentFont.Height)
                    lineHeight = currentFont.Height;

                //是换行符或当前行已满,allHeight加上当前行高度,
                //allWidth和lineHeight都设为0。

                if (rtbEditor.SelectedText == "\n"
                    || e.MarginBounds.Right - e.MarginBounds.Left < allWidth)
                {
                    allHeight += lineHeight;
                    allWidth = 0;
                    lineHeight = 0;
                }
                //继续下一个字符

                _currentCharIndex++;
            }

            //后面还有内容,则还有下一页

            if (_currentCharIndex < rtbEditor.Text.Length)
                e.HasMorePages = true;
            else
                e.HasMorePages = false;
        }

        private void tsmiPrint_Click(object sender, EventArgs e)
        {
            if (pdDemo.ShowDialog() == DialogResult.OK)
            {
                //用户确定了打印机和设置后,进行打印。

                pdEditor.Print();
            }
        }

        private void tsmiPageSetup_Click(object sender, EventArgs e)
        {
            psdDemo.ShowDialog();
        }

        private void tsmiPrintPreview_Click(object sender, EventArgs e)
        {
            ppdDemo.ShowDialog();
        }

        private void pdEditor_BeginPrint(object sender, 
            System.Drawing.Printing.PrintEventArgs e)
        {
            _currentCharIndex = 0;
        }

        #endregion
    }
}

八、提示关闭窗体

1、效果

在这里插入图片描述

2、界面设计

在这里插入图片描述

3、代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace 提示关闭窗口
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            DialogResult choice = MessageBox.Show("确定要关闭窗体吗?", "注意", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);

            if (choice == DialogResult.Cancel)   //判断是否单击“取消按钮”
            {
                e.Cancel = true;
            }
        }

        public class MessageFilter : System.Windows.Forms.IMessageFilter     //禁止窗体拖动的类,继承自System.Windows.Forms.IMessageFilter 接口
        {
            const int WM_NCLBUTTONDOWN = 0x00A1;
            const int HTCAPTION = 2;


            public bool PreFilterMessage(ref System.Windows.Forms.Message m)
            {
                if (m.Msg == WM_NCLBUTTONDOWN && m.WParam.ToInt32() == HTCAPTION)
                    return true;
                return false;
            }
        }
    }
}


总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/623048.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

聚观早报 | OpenAI 没有上市计划;马斯克称未来房价下跌将加速

今日要闻&#xff1a;OpenAI 没有上市计划&#xff1b;马斯克称未来房价下跌将加速&#xff1b;Coinbase被SEC起诉&#xff0c;股价闪崩&#xff1b;库克&#xff1a;苹果正密切关注ChatGPT等&#xff1b;推特正致力于开发视频直播产品 OpenAI没有上市计划 当地时间周二&…

068:cesium lookAtTransform围绕一个固定点上下左右旋转查看

第068个 点击查看专栏目录 本示例的目的是介绍如何在vue+cesium中查看一个固定的点的情况,从上下左右不同的维度进行查看。这里面使用lookAtTransform这个操作函数。lookAtTransform(transform, offset),这里的offset偏移量可以是笛卡尔坐标或航向/俯仰/范围。 直接复制下面…

Java集合常见面试题集锦

1、介绍Collection框架的结构 集合是Java中的一个非常重要的一个知识点&#xff0c;主要分为List、Set、Map、Queue三大数据结构。它们在Java中的结构关系如下&#xff1a; Collection接口是List、Set、Queue的父级接口。 Set接口有两个常用的实现类&#xff1a;HashSet和Tre…

libmodbus编程笔记

一 基础知识 地址映射值 Modbus寄存器 Modbus寄存器地址分配 Modbus ASCII消息帧格式 Modbus RTU帧格式 Modbus RTU相邻帧间隔 Modbus寻址范围 PDU与ADU的关系 Modbus TCP/IP ADU与PDU的关系 Modbus TCP/IP与Modbus串行消息构成对比 Modbus TCP/IP协议最大帧数据长度为260字…

人工智能-实验四

第四次实验 一.实验目的 ​ 了解深度学习的基本原理。能够使用深度学习开源工具。学习使用深度学习算法求解实际问题。 二.实验原理 1.深度学习概述 ​ 深度学习源于人工神经网络&#xff0c;本质是构建多层隐藏层的人工神经网络&#xff0c;通过卷积&#xff0c;池化&…

【2 微信小程序学习 - 小程序的架构.配置.app与page】

1 小程序的架构模型 为了避免卡顿,优化性能,小程序使用双线程模型. 可以理解为创建了两个webview,一个负责渲染界面,一个负责js脚本处理,通过微信客户端的native进行中转交互. 2 小程序的配置文件 在多人开发中,一般不修改project.config.json避免冲突 ,而是单人修改project…

Intradeco通过适用于Excel的Liquid UI自动执行SAP MM并节省80%的处理时间

背景 Intradeco为服装制造提供整体方法&#xff0c;涵盖所有阶段&#xff1a;从构思阶段到最终产品分销。它已发展成为一家全球垂直制造公司&#xff0c;客户遍布美国、墨西哥和加拿大。 挑战 提高运营效率 原因&#xff1a;人员必须浏览多个 SAP 事务才能为新材料创建采购订单…

2023年牛客网最新Java面试八股文附答案整理(不管工作几年都可以看看)

很多人都说今年对于 IT 行业根本没有所谓的“金三银四”“金九银十”。在各大招聘网站或者软件上不管是大厂还是中小公司大多都是挂个招聘需求&#xff0c;实际并不招人&#xff1b;在行业内的程序员基本都已经感受到了任老前段时间口中所谓的“寒气”。 虽然事实确实是如此&a…

学顶教育:初级会计师领取证书有关事项

初级会计师职称证书是国家组织考试后颁发的专业技术资格证书&#xff0c;与纸质证书和电子证书具有同等法律效力。 考取初级会计师职称证书的有关事项如下&#xff1a; 1、领取方式 初级会计职称证书的领取方式有两种&#xff1a;现场领取和邮寄领取。 考生可任选其一。 部分…

浪涌保护器和避雷器的区别

线路在使用过程中&#xff0c;由于短路或雷击&#xff0c;会突然产生巨大的能量。一旦这种能量通过线路进入家庭或其他电力线&#xff0c;就会造成设备烧毁&#xff0c;造成生命和财产损失。直流电涌保护器可以通过保护组件立即将巨大的能量吸入地面端子&#xff0c;从而保护您…

[架构之路-207]- 常见的需求分析技术:实用的需求分析与建模详解过程(实操性强)

目录 1.1 需求分析建模的要点与误区 1.1.1 需求分析到底做什么 1.1.1.1 分解的方法 1.1.1.2 提炼、合并、重组 1.1.1.3 消除矛盾 1.1.2 建模的目标和要点 1.1.2.1 建模的目的 1.1.2.2 建模的要点与原则 1.1.3 选择建模工具的要点 1.1.3.1 正确认识建模方法论 1.1.3.…

肠道菌群检测在临床感染判别中的应用

谷禾健康 感染是人类面临的健康威胁之一。各种病原体&#xff0c;如细菌、病毒、真菌、寄生虫等&#xff0c;存在于我们日常接触的环境、物品、食物等中。一些常见的感染病例包括感冒、流感、腹泻、组织器官或血液感染等&#xff0c;在全球范围内广泛传播。这些疾病的传播方式多…

MAYA活塞动画

给组打关键 让下面带动上面一起运动 创建定位器 放在中间 创建两个定位器 一个定位器放在连动秆下面&#xff0c;让定位跟物体一块动 创建目标约束 完成

python基础----07-----异常、模块、包

一 了解异常 当检测到一个错误时&#xff0c;Python解释 器就无法继续执行了&#xff0c;反而出现了一些错误的提示&#xff0c;这就是所谓的“异常”&#xff0c;也就是我们常说的BUG。 二 异常的捕获 当我们的程序遇到了BUG&#xff0c;那么接下来有两种情况&#xff1a; …

AcWing算法提高课-1.3.14开心的金明

宣传一下算法提高课整理 <— CSDN个人主页&#xff1a;更好的阅读体验 <— 本题链接&#xff08;AcWing&#xff09; 点这里 题目描述 金明今天很开心&#xff0c;家里购置的新房就要领钥匙了&#xff0c;新房里有一间他自己专用的很宽敞的房间。 更让他高兴的是&…

Vue.js中的Render函数和模板语法

Vue.js中的Render函数和模板语法 在Vue.js中&#xff0c;有两种主要的方式来构建组件&#xff1a;使用模板和使用render函数。模板语法是Vue.js中最常见的方式&#xff0c;它是一种基于HTML的语法&#xff0c;能够直接在HTML文件中定义组件的结构和行为。而render函数则是一种…

公司新来一00后,真让人崩溃...

2022年已经结束结束了&#xff0c;最近内卷严重&#xff0c;各种跳槽裁员&#xff0c;相信很多小伙伴也在准备今年的金九银十的面试计划。 在此展示一套学习笔记 / 面试手册&#xff0c;年后跳槽的朋友可以好好刷一刷&#xff0c;还是挺有必要的&#xff0c;它几乎涵盖了所有的…

设计模式(五):创建型之建造者模式

设计模式系列文章 设计模式(一)&#xff1a;创建型之单例模式 设计模式(二、三)&#xff1a;创建型之工厂方法和抽象工厂模式 设计模式(四)&#xff1a;创建型之原型模式 设计模式(五)&#xff1a;创建型之建造者模式 设计模式(六)&#xff1a;结构型之代理模式 目录 一、…

让ChatGPT来写今年的高考作文,会得几分?

使用最新的ChatGPT4模型&#xff0c;做2023年全国甲卷的高考作文。 作文考试题目如下 人们因技术发展得以更好地掌控时间&#xff0c;但也有人因此成了时间的仆人。这句话引发了你怎样的联想与思考?请写一篇文章。 要求&#xff1a;选准角度&#xff0c;确定立意&#xff0…

promise、async事件循环机制,你是CV工程师?

在面试的过程中如果不了解promise、async事件循环机制基本就会认为你是CV工程师 首先分析 async/await 其实是基于promise实现的&#xff0c;async 函数其实就是把 promise 做了一个包装 promise 是es6的语法&#xff0c;async/await 是es7的语法糖&#xff0c;所以我们先来分析…