用C#语言实现记事本

C#实现记事本

一、记事本界面设计

1、打开VS2013 单击 文件→新建→项目

2、选择模版→Visual C#→windows→windows窗体应用程序,在下面的名称写Notepad

3、更改窗体名称,单击窗体→右下角属性→text,修改为“记事本”

补充:
界面设置:
新建好“Notepad”项目后,定位到记事本程序的窗体设计器窗口,然后依次在窗体上放置以下控件(各1个):
(1)MenuStrip(菜单控件)。
①单击窗体左边会出现工具箱→ 找到menustrip →拖动到窗体中
②单击菜单栏→右下角属性→修改Name属性为“mnusNotepad”
③单击输入【文件(F)】、【编辑(E)】、【格式(O)】、【查看(V)】和【帮助(H)】
④设置【文件(F)】、【编辑(E)】、【格式(O)】、【查看(V)】和【帮助(H)】的属性→
单击【文件(F)】、【编辑(E)】、【格式(O)】、【查看(V)】和【帮助(H)】找到对应的属性窗口
(2)ToolStrip(工具栏控件)。
①单击窗体左边会出现工具箱→ 找到“ToolStrip” →拖动到窗体中
②单击工具栏→右下角属性→修改Name属性为“tlsNotepad”
③右击工具栏→ 插入标准项
④右击工具栏→ 编辑项
(3)RichTextBox(多格式文本框控件)
①单击窗体左边会出现工具箱→ 找到“RichTextBox” →拖动到窗体中
②单击工具栏→右下角属性→修改Name属性为“rtxtNotepad”
③Anchor属性选择“Top,Bottom,Left,Right”,这样当窗体大小改变时,RichTextBox控件的大小也会跟着改变
(4)StatusStrip(状态栏控件)。
①添加StatusStrip控件,将其Name属性设为“stsNotepad”,将Dock属性设为“Bottom”再将Anchor属性设为“Bottom,Left,Right”。然后单击右边的按钮,打开【项集合编辑器】对话框
②拉列表中保留默认的选择“StatusLabel”,然后单击【添加】按钮,依次添加2个StatusLabel,并分别命名为“tssLbl1”和“tssLbl2”,再将tssLbl1的Text属性设为“就绪”, tssLbl2的Text属性设为“显示日期、时间”。
(5)OpenFileDialog(打开对话框)
从工具箱中找到OpenFileDialog直接拖入窗体中 单击属性
当用户单击记事本的【文件】→【打开】菜单项时,使用打开对话框OpenFileDialog打开文件。OpenFileDialog控件的Name属性为“odlgNotepad”,Filter属性设为“RTF文件|.rtf|所有文件|.”。
(6)SaveFileDialog(保存对话框)
从工具箱中找到SaveFileDialog直接拖入窗体中 单击属性
当用户单击记事本的【文件】→【保存】(或【另存为】)菜单项时,使用保存对话框SaveFileDialog保存文件。SaveFileDialog控件的Name属性为“sdlgNotepad”,FileName属性改为“无标题”,Filter属性设为“RTF文件|
.rtf”。
(7)FontDialog(字体对话框)
从工具箱中找到FontDialog直接拖入窗体中 单击属性
当用户单击记事本的【格式】→【字体】菜单项时,使用字体对话框FontDialog设置文本字体。FontDialog控件的Name属性为“fdlgNotepad”。
(8)Timer(计时器控件)
从工具箱中找到Timer直接拖入窗体中 单击属性
本章介绍的记事本在状态栏中显示了时钟,这就需要使用一个Timer控件来实现。Timer控件的Name属性设为“tmrNotepad”,Enabled(激活的可行的)属性设为“True”,Interval(间隔,间距,幕间时间)属性设为“1000”,表示1秒种触发一次Tick事件,即1秒钟改变一次时钟。
最终结果如下:
在这里插入图片描述

二、编写程序代码

1、首先在代码的通用段声明以下两个公共变量,他们都是布尔型的,“b”用于判断文件是新建的还是从磁盘打开的,“s”用于判断文件是否被保存。
双击窗体,进入代码区填写以下代码:

//*************************************************************************
/* 布尔变量b用于判断文件是新建的还是从磁盘打开的,true表示文件是从磁盘打开的,false表示文件是新建的,默认值为false*/
bool b = false;
/* 布尔变量s用于判断文件件是否被保存,true表示文件是已经被保存了,false表示文件未被保存,默认值为true*/
bool s = true; 
//*************************************************************************

2、接下来介绍多格式文本框(rtxtNotepad)、菜单(mnusNotepad)、工具栏(tlsNotepad)、计时器(tmrNotepad)对象的程序代码。

(1)多格式文本框代码(RichTextBox)
当多格式文本框中的文本发生改变后,应当设置布尔变量“s”的值为false,表示文件未保存,因此编写多格式文本框的TextChanged事件代码如下:
双击RichTextBox,进入代码区填写以下代码:

//*************************************************************************
// 多格式文本框的TextChanged事件代码
//*************************************************************************
private void rtxtNotepad_TextChanged(object sender, EventArgs e)
{// 文本被修改后,设置s为false,表示文件未保存s = false;
}
//*************************************************************************
//*************************************************************************

(2)菜单代码
①【文件(F)】菜单
【文件(F)】菜单的功能是完成文件的新建、打开、保存、另存为功能,以及退出记事本程序,下面对各个菜单项的源代码进行详细的说明。
【新建(N)】菜单项
单击该菜单项时新建一个空白文档,首先应该判断文件是从磁盘打开的还是新建的,若从磁盘打开则将前面定义的变量(b)设为“true”,否则设为“false”。这样做可以根据这个变量对文件进行相应的操作。并且每次保存文件后,都要将前面定义的变量(s)设为“true”,表示文件已经被保存。
单击新建菜单时,如果当前文件是从磁盘打开的,并且已经过修改,则要按OpenFileDialog控件的路径来保存文件。
如果是新建的文件且内容不为空,则需要用SaveFileDialog控件来保存文件,【新建(N)】菜单项的代码如下:
双击“新建“,进入代码区填写以下代码:

//*************************************************************************
// 【新建】菜单代码
//*************************************************************************
private void tsmiNew_Click(object sender, EventArgs e)
{// 判断当前文件是否从磁盘打开,或者新建时文档不为空,并且文件未被保存if (b == true || rtxtNotepad.Text.Trim() != ""){// 若文件未保存if (s == false){string result;result = MessageBox.Show("文件尚未保存,是否保存?", "保存文件", MessageBoxButtons.YesNoCancel).ToString();switch (result){case "Yes":// 若文件是从磁盘打开的if (b == true){// 按文件打开的路径保存文件rtxtNotepad.SaveFile(odlgNotepad.FileName);}// 若文件不是从磁盘打开的else if (sdlgNotepad.ShowDialog() == DialogResult.OK){rtxtNotepad.SaveFile(sdlgNotepad.FileName);}s = true;rtxtNotepad.Text = "";break;case "No":b = false;rtxtNotepad.Text = "";break;}}}
}
//*************************************************************************
//*************************************************************************

【打开(O)】菜单项
单击该菜单项时,如果是要从磁盘或其他设备打开“*.rtf”文件,同样要作出判断,所不同的是判断后用OpenFileDialog控件打开文件,并且每次保存文件后,都要将前面定义的变量(s)设为“true”,表示文件已经被保存。代码如下:
双击“打开“,进入代码区填写以下代码:

//*************************************************************************
// 【打开】菜单代码
//*************************************************************************
private void tsmiOpen_Click(object sender, EventArgs e)
{if (b == true || rtxtNotepad.Text.Trim() != ""){if (s == false){string result;result = MessageBox.Show("文件尚未保存,是否保存?", "保存文件", MessageBoxButtons.YesNoCancel).ToString();switch (result){case "Yes":if (b == true){rtxtNotepad.SaveFile(odlgNotepad.FileName);}else if (sdlgNotepad.ShowDialog() == DialogResult.OK){rtxtNotepad.SaveFile(sdlgNotepad.FileName);}s = true;break;case "No":b = false;rtxtNotepad.Text = "";break;}}}odlgNotepad.RestoreDirectory = true;if ((odlgNotepad.ShowDialog() == DialogResult.OK) && odlgNotepad.FileName != ""){rtxtNotepad.LoadFile(odlgNotepad.FileName);//打开代码语句b = true;}s = true;
}
//*************************************************************************
//*************************************************************************

【保存(S)】菜单项
单击此菜单项保存文本框的内容,需要判断该文件是从磁盘打开还是新建的,如果是从磁盘打开的,则要判断是否有更改,只有有更改时才进行保存操作,否则不作任何处理。如果是新建的文档就调用SaveFileDialog控件保存文件,然后把bool变量b改为“true”,同时把SaveFileDialog控件的文件路径赋给OpenFileDialog控件,这样下次打开文件时,文件路径默认为刚刚保存文件的路径,并且每次保存文件后,都要将前面定义的变量(s)设为“true”,表示文件已经被保存。代码如下:
双击“保存“,进入代码区填写以下代码:

//*************************************************************************
// 【保存】菜单代码
//*************************************************************************
private void tsmiSave_Click(object sender, EventArgs e)
{//由于这个没有改Name属性,所以和图片不太一样,对照就行// 若文件从磁盘打开并且修改了其内容if (b == true && rtxtNotepad.Modified == true){rtxtNotepad.SaveFile(odlgNotepad.FileName);s = true;}else if (b == false && rtxtNotepad.Text.Trim() != "" &&sdlgNotepad.ShowDialog() == DialogResult.OK){rtxtNotepad.SaveFile(sdlgNotepad.FileName);//保存语句s = true;b = true;odlgNotepad.FileName = sdlgNotepad.FileName;}
}
//*************************************************************************
//*************************************************************************

【另存为(A)】菜单项
将文件另存为后,要将前面定义的变量(s)设为“true”,表示文件已经被保存。本菜单项的代码如下:
双击“另存为“,进入代码区填写以下代码:

//*************************************************************************
// 【另存为】菜单代码
//*************************************************************************
private void tsmiSaveAs_Click(object sender, EventArgs e)
{if (sdlgNotepad.ShowDialog() == DialogResult.OK){rtxtNotepad.SaveFile(sdlgNotepad.FileName);s = true;}
}
//*************************************************************************
//*************************************************************************

【退出(X)】菜单项
本菜单项的功能是退出记事本程序,代码如下:
双击“退出” 填入以下代码:

//*************************************************************************
// 【退出】菜单代码
//*************************************************************************
private void tsmiClose_Click(object sender, EventArgs e)
{Application.Exit();//程序结束
}
//*************************************************************************
//*************************************************************************

②【编辑(E)】菜单
【编辑(E)】菜单用于完成撤销(撤销最近一次对文本框的编辑操作)、复制(复制选中的文本内容)、剪切(剪切选中的文本内容)、粘贴(粘贴剪贴板中的内容)、全选(选中多格式文本框中所有的内容)以及将当前日期追加至文本文件的功能。【编辑(E)】菜单各菜单项的单击事件代码如下:

//*************************************************************************
// 【编辑】菜单各菜单项的单击代码
//*************************************************************************// 【撤销】菜单代码
private void tsmiUndo_Click(object sender, EventArgs e)
{rtxtNotepad.Undo();//撤销
}// 【复制】菜单代码
private void tsmiCopy_Click(object sender, EventArgs e)
{rtxtNotepad.Copy();//复制
}// 【剪切】菜单代码
private void tsmiCut_Click(object sender, EventArgs e)
{rtxtNotepad.Cut();//剪切
}// 【粘贴】菜单代码
private void tsmiPaste_Click(object sender, EventArgs e)
{rtxtNotepad.Paste();//粘贴
}// 【全选】菜单代码
private void tsmiSelectAll_Click(object sender, EventArgs e)
{rtxtNotepad.SelectAll();//全选
}// 【日期】菜单代码
private void tsmiDate_Click(object sender, EventArgs e)
{rtxtNotepad.AppendText(System.DateTime.Now.ToString());//显示当前日期
}
//*************************************************************************
//*************************************************************************

③【格式(O)】菜单
【格式(O)】菜单用于设置打开或新建的文本内容是否自动换行,以及设置字体的格式功能。
【自动换行(W)】菜单项
此菜单项的Checked属性默认为“True”,文本内容按照文本框的宽度自动换行,否则只按段落标记换行,【自动换行(W)】菜单项的代码如下:

//*************************************************************************
// 【自动换行】菜单代码
//*************************************************************************
private void tsmiAuto_Click(object sender, EventArgs e)
{if (tsmiAuto.Checked == false){tsmiAuto.Checked = true;        	// 选中该菜单项rtxtNotepad.WordWrap = true;       	// 设置为自动换行}else{tsmiAuto.Checked = false;rtxtNotepad.WordWrap = false;}
}
//*************************************************************************
//*************************************************************************

【字体(F)】菜单项
单击此菜单项时,弹出字体对话框以调整选择内容的字体、颜色等属性。因此需要使用前面添加的FontDialog控件来实现。【字体(F)】菜单项的单击事件代码如下:

//*************************************************************************
// 【字体】菜单代码
//*************************************************************************
private void tsmiFont_Click(object sender, EventArgs e)
{fdlgNotepad.ShowColor = true;if (fdlgNotepad.ShowDialog() == DialogResult.OK){rtxtNotepad.SelectionColor = fdlgNotepad.Color;rtxtNotepad.SelectionFont = fdlgNotepad.Font;}
}
//*************************************************************************
//*************************************************************************

④【查看(V)】菜单
【查看(V)】菜单用于设置记事本上是否显示工具栏和状态栏,这两个菜单项默认情况下是被选中的,可以通过单击相应的菜单项设置不同的显示效果。
【工具栏(T)】菜单项
该菜单项用于控制工具栏的显示和隐藏,默认状态下显示工具栏,当隐藏时应当修改多格式文本框的位置和高度。代码如下:

//*************************************************************************
// 【工具栏】菜单代码(不是必须的)
//*************************************************************************
private void tsmiToolStrip_Click(object sender, EventArgs e)
{Point point;if (tsmiToolStrip.Checked == true){// 隐藏工具栏时,把坐标设为(0,24),因为菜单的高度为24point = new Point(0, 24);tsmiToolStrip.Checked = false;tlsNotepad.Visible = false;// 设置多格式文本框左上角位置rtxtNotepad.Location = point;// 隐藏工具栏后,增加文本框高度rtxtNotepad.Height += tlsNotepad.Height;}else{/* 显示工具栏时,多格式文本框左上角位置的位置为(049),因为工具栏的高度为25,加上菜单的高度24后为49 */point = new Point(0, 49);tsmiToolStrip.Checked = true;tlsNotepad.Visible = true;rtxtNotepad.Location = point; rtxtNotepad.Height -= tlsNotepad.Height;}
}
//*************************************************************************
//*************************************************************************

【状态栏(S)】菜单项(不是必须的)
该菜单项用于控制状态栏的显示和隐藏,默认状态下显示状态栏,当隐藏时应当修改多格式文本框的高度。代码如下:

//*************************************************************************
// 【状态栏】菜单代码
//*************************************************************************
private void tsmiStatusStrip_Click(object sender, EventArgs e)
{if (tsmiStatusStrip.Checked == true){tsmiStatusStrip.Checked = false;stsNotepad.Visible = false;rtxtNotepad.Height += stsNotepad.Height;}else{tsmiStatusStrip.Checked = true;stsNotepad.Visible = true;rtxtNotepad.Height -= stsNotepad.Height;}
}
//*************************************************************************
//*************************************************************************

⑤【帮助(H)】菜单
本菜单只有一个菜单项【关于记事本(A)】,该菜单项调用一个窗体(frmAbout)显示本程序的一些相关信息。并用LinkLabel控件设置链接,通过它可以方便地给作者发送E-Mail。
设计好frmAbout窗体后,为了显示该窗体,需要编写【关于记事本(A)】菜单项的单击事件代码如下:

//*************************************************************************
// 【关于记事本】菜单代码
//*************************************************************************
private void tsmiAbout_Click(object sender, EventArgs e)
{frmAbout ob_FrmAbout = new frmAbout();ob_FrmAbout.Show();
}//*************************************************************************
//*************************************************************************

(3)工具栏代码
工具栏提供了一些快捷按钮,用来方便用户的操作,用户按下按钮时相当于选择了某个菜单项,用switch语句实现如下,双击工具栏的空白部位,编写工具栏的ItemClicked事件代码如下:

//*************************************************************************
// 工具栏的ItemClicked事件代码
//*************************************************************************
private void tlsNotepad_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{int n;// 变量n用来接收按下按钮的索引号从0开始n = tlsNotepad.Items.IndexOf(e.ClickedItem);switch (n){ case 0:新建NToolStripButton_Click (sender, e);break;case 1:打开OToolStripButton_Click (sender, e);break;case 2:保存SToolStripButton_Click (sender, e);break;/*case 3:tsmiCopy_Click(sender, e);break; */ // 我们不用case3case 4:剪切UToolStripButton_Click (sender, e);break;case 5:粘贴PToolStripButton_Click (sender, e);break;/*case 6:tsmiPaste_Click(sender, e);break; */ // 我们不用case6case 7:tsmiAbout_Click (sender, e);break;}
}
//*************************************************************************
// 工具栏的ItemClicked事件代码
//*************************************************************************

(4)计时器代码
要在状态栏的tssLbl2中显示当前时间,需要编写计时器控件的Tick事件(每秒钟触发一次)代码如下:

//*************************************************************************
// 计时器控件的Tick事件代码
//*************************************************************************
private void tmrNotepad_Tick(object sender, EventArgs e)
{tssLbl2.Text = System.DateTime.Now.ToString();
}
//*************************************************************************
//*************************************************************************

(5)窗体代码
在改变窗体大小时(例如最大化窗口或使用鼠标改变窗口大小),为了使状态栏中的标签也随之改变其宽度,应当编写窗体的SizeChanged事件代码如下:

//*************************************************************************
// 窗体的的SizeChanged事件代码
//*************************************************************************
private void frmNotepad_SizeChanged(object sender, EventArgs e)
{frmNotepad ob_frmNotepad = new frmNotepad();tssLbl1.Width = this.Width / 2 - 12;tssLbl2.Width = tssLbl1.Width;
}
//*************************************************************************
//*************************************************************************

三、关于记事本

接下来单击Visual C# 2013的【项目】→【添加Windows窗体】菜单项,添加一个名为“frmAbout”的窗体
在这里插入图片描述

1. 界面设计
然后给窗体“frmAbout”添加几个Label、Button、LinkLabel和PictrueBox控件

2. 编写代码
本部分的代码很简单,单击【确定】按钮关闭本窗体。并且利用LinkLabel控件
代码如下:

//*************************************************************************
// 【关于记事本】代码
//*************************************************************************// 【确定】按钮
private void btnOk_Click(object sender, EventArgs e)
{this.Close();
}// 使用LinkLabel打开邮件或者网页
private void llblEmail_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{System.Diagnostics.Process.Start(“http://www.baidu.com”);
}
//*************************************************************************

四、源代码

C#语言实现笔记本

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

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

相关文章

pixhawk计算机无法识别,PIXHAWK教程 3.1.2 连接你的遥控输入和电机(Pixhawk)

连接你的遥控输入和电机(Pixhawk) 目录 连接你的遥控输入和电机(Pixhawk) 连接蜂鸣器和安全开关 连接其他外部设备 连接遥控输入 连接电机输入 安装螺旋桨 顺时针和逆时针桨的识别 连接蜂鸣器和安全开关 蜂鸣器和安全开关依附于Pixhawk。 分别连接到蜂鸣器和开关端口。 连接其他…

ThinkPHP 验证码扩展库的使用,以及多应用模式下,如何自定义验证码校验规则

ThinkPHP 验证码扩展库的使用,以及多应用模式下,如何自定义验证码校验规则 一、安装二、页面使用三、验证码相关配置属性1. 自定义验证码配置2. 自定义验证码(一)普通验证码3. 自定义验证码(二)算数验证码4…

linux会话session

linux会话 什么是linux session 我们常见的 Linux session 一般是指 shell session。Shell session 是终端中当前的状态,在终端中只能有一个 session。 当我们打开一个新的终端时,总会创建一个新的 shell session。这表明会话是我们和shell交互的一个过…

session是什么

前言: 今天就来彻底的学一些session是个啥东西,我罗列了几个需要知道的要点: 1.session 是啥? 2.怎么保存的? 3.如何运行? 4.有生命周期吗? 5.关闭浏览器会过期吗? 6.Redis代替文件存…

Session是什么东西

虽然经常做的C,Web 写的少,但是这个知识在面试中经常遇到,现在就记录一下。 Web的三个概念: Session 、 cookie、 application。 Session 和 Cookie 功能效果是差不多的,区别就是session 是记录在服务端的,Cookie是记…

Python—Session

python中session()是干什么作用的_session是什么意思 Session:在计算机中,尤其是在网络应用中,称为“会话控制”。Session 对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的 Web 页之间跳转时,存储…

彻底弄清楚session是什么?

前言: 今天就来彻底的学一些session是个啥东西,我罗列了几个需要知道的要点: 1.session 是啥? 2.怎么保存的? 3.如何运行? 4.有生命周期吗? 5.关闭浏览器会过期吗? 6.redis代替文…

浅谈 Cookie 和 Session

理解Cookie理解Session核心方法案例-网页登录1. 编写一个简单的登录页面2. 编写一个 Servlet 来处理这个登录请求3. 编写服务器返回主页的逻辑4. 启动服务器验证 Cookie 和 Session 区别 理解Cookie 在前面的 HTTP 协议中,也理解过这个 Cookie,HTTP 协议自身是属于 “无状态”…

session是什么?

目录: 1.session 是啥? 2.怎么保存的? 3.如何运行? 4.有生命周期吗? 5.关闭浏览器会过期吗? 6.Redis代替文件存储session 7.分布式session的同步问题 session是啥? 首先,我大致的…

什么是session?

最近在学习node.js 的express框架,接触到了关于session方面的内容。翻阅了一些的博客,学到了不少东西,发现一篇博文讲的很好,概念内容摘抄如下: Session是什么 Session一般译作会话,牛津词典对其的解释是…

session的到底是做什么的?

前言: 今天就来彻底的学一些session是个啥东西,我罗列了几个需要知道的要点: 1.session 是啥? 2.怎么保存的? 3.如何运行? 4.有生命周期吗? 5.关闭浏览器会过期吗? 6.Redis代替文…

Session(超详细)

Session 会话 1.什么是 Session 会话? Session 就一个接口(HttpSession)。Session 就是会话。它是用来维护一个客户端和服务器之间关联的一种技术。每个客户端都有自己的一个 Session 会话。Session 会话中,我们经常用来保存用户登录之后的…

Session详解(重点)

什么是Session: (1)服务器会给每一个用户(浏览器)创建一个Session对象 比如我们现在都去访问百度,我们使用双核浏览器和谷歌浏览器同时访问百度这个网址,百度那边会有两个session,因为浏览器不一样&#x…

Session原理

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 开发工具与关键技术:Java,HTTP协议,session原理 撰写时间:2019-06-17 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~…

Session详解

Session(重点) 什么是Session: 服务器会给每一个用户(浏览器)创建一个Session对象一个Session独占一个浏览器,只要浏览器没有关闭,这个Session就存在用户登陆之后,整个网站它都可以访问–>保存用户的信…

Session详解,学习Session,这篇文章就够了(包含底层分析和使用)

说明:下面介绍session,我们使用到了游览器抓包,http的知识,如果不了解,请先简单了解下。http介绍,http请求,http响应。因为cookie和session是一对”好兄弟“,我们介绍session也要使用…

移动端VIN码识别技术的出现,为汽配供应链带来便捷

汽配供应链作为汽车后市场一大蓝海,成为众多商家的“必争之地”。在现今人工智能大数据的大环境下,拥抱科技,运用人工智能技术构建智能化数据平台成为提升企业行业竞争力的首选。 VIN码即车架号就是汽车的唯一的身份证,汽车从下线…

harrier 查看查看服务器状态,机油尺检查细节多多,嘉普力汽配工场教你如何正确查看机油尺...

平常我们总是说烧机油、机油消耗、机油增多,很多车主都快得"机油恐惧症"了,时刻担心自己的机油出现问题。既然担心就要查机油,那么你会看机油尺吗?今天,嘉普力汽配工场就教车主朋友们如何正确查看机油尺。 机…

汽车汽配行业B2B电子商务系统营销渠道自动化,综合提升B2B平台交易效率

汽车工业作为国家制造业的支柱之一,是衡量国家工业水平的基本指标。不断完善汽车工业整体的行业规范,促进汽车工业更稳定、更健康的发展,才能有效提升汽车工业的经济作用及影响力。 4S店模式,作为我国一直以来最主要的汽车销售模…

数商云采购系统对账结算功能介绍 | 缩短汽配企业结算周期,提高资金周转效率

近年来随着市场饱和度增加、竞争加剧,特别是信息技术的广泛发展,造成相当程度的平衡打破,使得通过平台化提升汽配供应链整体效率并建立主体间信任的可塑性增强,汽配供应链迎来新的变局。 作为名副其实的中小企业,汽配…