中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

買(mǎi)了域名之后怎么做網(wǎng)站網(wǎng)絡(luò)推廣公司企業(yè)

買(mǎi)了域名之后怎么做網(wǎng)站,網(wǎng)絡(luò)推廣公司企業(yè),b2b購(gòu)物網(wǎng)站建設(shè),什么網(wǎng)站做全景效果圖好今日繼續(xù)我的C#winform上位機(jī)學(xué)習(xí)之路 這系列筆記的目標(biāo)是嘗試編寫(xiě)一個(gè)能夠與西門(mén)子PLC進(jìn)行以太網(wǎng)口通信的上位機(jī)軟件。 文章提供完整代碼解釋、設(shè)計(jì)點(diǎn)解釋、測(cè)試效果圖、完整工程下載 本章主要學(xué)習(xí):Winform多個(gè)窗體的一些操作 、無(wú)邊框窗體的創(chuàng)建、Combox組件插…

今日繼續(xù)我的C#winform上位機(jī)學(xué)習(xí)之路

這系列筆記的目標(biāo)是嘗試編寫(xiě)一個(gè)能夠與西門(mén)子PLC進(jìn)行以太網(wǎng)口通信的上位機(jī)軟件。

文章提供完整代碼解釋、設(shè)計(jì)點(diǎn)解釋、測(cè)試效果圖、完整工程下載

本章主要學(xué)習(xí):Winform多個(gè)窗體的一些操作 、無(wú)邊框窗體的創(chuàng)建、Combox組件插入枚舉類(lèi)型、日志委托的添加使用、

只是個(gè)人學(xué)習(xí)方面的筆記,如有疏漏實(shí)乃正常......

目錄

Winform 西門(mén)子PLC通信窗口的控件擺放與聲明:

Winform 添加新的窗口:

Winform多窗口設(shè)置窗口加載順序:

Winform去除窗口邊框:

按鍵操作TabControl調(diào)出新窗口:

按鍵清除Tabcontrol中的窗體內(nèi)容:

枚舉類(lèi)型與Combox控件的綁定:

日志的添加建立_綁定imagelist:

日志的添加建立_imaginelist添加成員:

listview編輯列屬性(日志時(shí)間內(nèi)容):

日志的添加使用:

winform常用圖標(biāo)庫(kù)下載:

網(wǎng)上資料查閱網(wǎng)址貼出:


Winform 西門(mén)子PLC通信窗口的控件擺放與聲明:

Form1()窗體設(shè)計(jì)控件如下:

ComboBox:CPU類(lèi)型、變量類(lèi)型

Button:連接PLC、讀取、寫(xiě)入

Textbox:IP地址、變量地址、讀取長(zhǎng)度、寫(xiě)入數(shù)值

RichTextBox:讀寫(xiě)信息

Winform 添加新的窗口:

先右鍵項(xiàng)目添加窗體:

然后可以進(jìn)行改名稱(chēng),并進(jìn)行添加:

新窗體控件擺放:

?tabControl和?button

前者用于確定框區(qū)大小,后者用于交互調(diào)出另一個(gè)表單

可以在屬性中查看框區(qū)大小,為設(shè)計(jì)做出便利:

Winform多窗口設(shè)置窗口加載順序:

現(xiàn)在我們項(xiàng)目中有了倆個(gè)窗口,但明顯我們希望新創(chuàng)建的串口MainForm是第一個(gè)運(yùn)行的,然后在Mainform的按鍵操作下再調(diào)出form1,那如何設(shè)置好Mainform先加載呢:

我們只需進(jìn)入Program.cs中,將原本的Form1()改為MainForm()即可 :

啟動(dòng)后發(fā)現(xiàn)確實(shí)變成MainForm的界面了:

Winform去除窗口邊框:

在實(shí)現(xiàn)接下來(lái)的設(shè)計(jì)之前,我們需要對(duì)form1進(jìn)行一些改進(jìn),主要是外觀(guān)上的改進(jìn):

然后去除其邊框:

最后別忘了改進(jìn)其大小,使其適合于之前的tabControl屬性中的大小:

按鍵操作TabControl調(diào)出新窗口:

?首先添加倆個(gè)函數(shù)方法:這倆個(gè)方法是寫(xiě)入MainForm項(xiàng)目中的:

        //添加窗體實(shí)例進(jìn)Tabpage中public void Add_TabPage(string str, Form myForm) //將標(biāo)題添加進(jìn)tabpage中{if (!this.tabControlCheckHave(this.tabControl1, str)){this.tabControl1.TabPages.Add(str);this.tabControl1.SelectTab((int)(this.tabControl1.TabPages.Count - 1));myForm.FormBorderStyle = FormBorderStyle.None;myForm.TopLevel = false;myForm.Show();myForm.Parent = this.tabControl1.SelectedTab;}}public bool tabControlCheckHave(TabControl tab, string tabName) //看tabpage中是否已有窗體{for (int i = 0; i < tab.TabCount; i++){if (tab.TabPages[i].Text == tabName){tab.SelectedIndex = i;return true;}}return false;}

然后在按鍵中調(diào)用第一個(gè)函數(shù)的方法:

public void Add_TabPage(string str, Form myForm) //將標(biāo)題添加進(jìn)tabpage中

?這樣就可以實(shí)現(xiàn)按下“西門(mén)子”按鍵,就調(diào)出之前的Form1()窗體貼在tabcontrol里了:

按鍵清除Tabcontrol中的窗體內(nèi)容:

這里我也是進(jìn)行學(xué)習(xí)提升一下,

將按鍵的操作改進(jìn)為:第二次按下“西門(mén)子”就清除Tabcontrol中的內(nèi)容:

別忘了定義Bool型變量幫助按鍵的操作形成一個(gè)循環(huán):

 bool button1_cg = false;      private void button1_Click(object sender, EventArgs e){//第一次點(diǎn)擊會(huì)將 Form1()添加進(jìn)Tabcontrol中if (button1_cg==false){button1_cg = true;Add_TabPage("西門(mén)子", new Form1());}//第二次就會(huì)清除所有標(biāo)簽頁(yè)else if(button1_cg==true){button1_cg = false;// 假設(shè)你的TabControl的名字是tabControl1// 清除所有的標(biāo)簽頁(yè)while (tabControl1.TabPages.Count > 0){tabControl1.TabPages.RemoveAt(0);}}}

再次按下清空效果:

枚舉類(lèi)型與Combox控件的綁定:

在上篇文章我們提到了與西門(mén)子通信的庫(kù)xktcomm中,CPU類(lèi)型是一個(gè)枚舉類(lèi)型(enum):

而我們希望其枚舉的類(lèi)型合理地進(jìn)入到我們的Form1()窗體的Combox組件中去枚舉:

代碼實(shí)現(xiàn):

        //表單初始化的類(lèi)public Form1(){InitializeComponent();this.Load += Form1_Load1;}private void Form1_Load1(object sender, EventArgs e){//加載cmb_CPUType組件的DataSource屬性//加載名稱(chēng)源GetNames是Enum數(shù)據(jù)類(lèi)型的xktComm.Common.CPU_Typethis.cmb_CPUType.DataSource = Enum.GetNames(typeof(xktComm.Common.CPU_Type));}

綁定后初始化效果展示:

?用同樣方式進(jìn)行變量類(lèi)型的枚舉綁定:

代碼如下:

//表單初始化的類(lèi)public Form1(){InitializeComponent();this.Load += Form1_Load1;}private void Form1_Load1(object sender, EventArgs e){this.cmb_CPUType.DataSource = Enum.GetNames(typeof(xktComm.Common.CPU_Type));this.cmb_VarType.DataSource = Enum.GetNames(typeof(xktComm.Common.VarType));}

效果如下:

日志的添加建立_綁定imagelist:

?回到設(shè)計(jì)界面,點(diǎn)擊組件右上角彈出listview:

添加新組件imagelist并綁定:

日志的添加建立_imaginelist添加icon成員:

第一次點(diǎn)擊imaginelist右上角的三角調(diào)出圖像集合編輯時(shí),是沒(méi)有圖像成員的,這里就需要添加了

文章末尾提供winform常用圖標(biāo)庫(kù)下載地址,這里我也是搜索到了需要的三個(gè)圖標(biāo),并放在了桌面

添加成功:

但我們發(fā)現(xiàn)有位成員是白色的,沒(méi)有圖標(biāo),這時(shí)點(diǎn)屬性知道它大小為64*64,而imaginelist設(shè)定的圖標(biāo)大小為16*16,這里改進(jìn)一下就行了:

?但計(jì)時(shí)這樣我還是發(fā)現(xiàn)沒(méi)解決問(wèn)題,最終我將一堆。ico文件導(dǎo)入看哪些正常、哪些不支持:

?然后選擇差不多元素的,按箭頭移位到位置替換了:

如果有大神知道如何將ico文件正確修改導(dǎo)入,希望能在評(píng)論區(qū)告知學(xué)習(xí)~~~~~~

最后提一嘴,別忘了將剛才的imaginelist的圖像屬性的64,64改回16,16,不然日志圖標(biāo)icon顯示會(huì)變得超級(jí)大:

listview編輯列屬性(日志時(shí)間內(nèi)容):

接下來(lái)繼續(xù)對(duì) 組件屬性進(jìn)行修改:

?點(diǎn)擊編輯列

就會(huì)看到日志的時(shí)間與內(nèi)容:

日志的添加使用:

日志的使用需要?jiǎng)?chuàng)建委托:

        //info 表示報(bào)警級(jí)別 ,log 表示報(bào)警信息public delegate void AddLog(int info, string log);

添加AddLog的實(shí)際方法:

         /*首先判斷是否需要通過(guò)Invoke調(diào)用該方法。如果不需要,則直接執(zhí)行下面的代碼。創(chuàng)建一個(gè)ListViewItem對(duì)象lst,用于存儲(chǔ)日志信息。使用DateTime.Now.ToString(“yyyy/MM/dd HH:mm:ss”)獲取當(dāng)前時(shí)間,并將其添加到lst中。將Log參數(shù)添加到lst的子項(xiàng)中。將lst插入到lstInfo控件的第一個(gè)位置。如果需要通過(guò)Invoke調(diào)用該方法,則使用Action委托和Invoke方法來(lái)執(zhí)行相同的操作。*///寫(xiě)入日志委托方法private void AddLog(int info, string Log){if (!lstInfo.InvokeRequired){//創(chuàng)建ListViewItem ,將時(shí)間與info放進(jìn)去ListViewItem lst = new ListViewItem("   " + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"), info);lst.SubItems.Add(Log);lstInfo.Items.Insert(0, lst);}else{Invoke(new Action(() =>{  ListViewItem lst = new ListViewItem("   " + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"), info);lst.SubItems.Add(Log);lstInfo.Items.Insert(0, lst);}));}}

初始化作綁定:

            myaddlog=this.AddLog;//綁定方法

在連接PLC按鍵函數(shù)處調(diào)用一下這個(gè)方法:

//連接/斷開(kāi)PLCprivate void btn_Connect_Click(object sender, EventArgs e){//連接PLCif (button1_Clickf == true){btn_Connect.Text = "斷開(kāi)PLC";btn_Connect.BackColor = Color.Red;button1_Clickf = false;myaddlog(isconnected ? 1 : 0, isconnected ? "PLC連接成功" : "連接PLC失敗");}//斷開(kāi)PLC           else if (button1_Clickf == false){btn_Connect.Text = "連接PLC";btn_Connect.BackColor = SystemColors.ActiveCaption;button1_Clickf = true;}}

? myaddlog(isconnected ? 0 : 1, isconnected ? "PLC連接成功" : "連接PLC失敗");?

? 中1和0表示的對(duì)應(yīng)引用哪個(gè)圖標(biāo):

?效果展示:

?

日志顯示不完整問(wèn)題解決:

?這里我們還是在之前的按鍵事件中,先寫(xiě)一個(gè)函數(shù)日志,是關(guān)于提示PLC已經(jīng)斷開(kāi)連接的,我們將其故意寫(xiě)得長(zhǎng)一些:

?

?發(fā)現(xiàn)運(yùn)行時(shí)后面的內(nèi)容無(wú)法正常顯示了:

這時(shí)就要在初始化Form時(shí)初始化lstInfo的屬性了,

           設(shè)置第一列的寬度=整個(gè)寬度 減去 第0頁(yè)寬度lstInfo.Columns[1].Width = lstInfo.ClientSize.Width - lstInfo.Columns[0].Width;

這樣初步改進(jìn)就能實(shí)現(xiàn)顯示更長(zhǎng)位數(shù)了:

?

winform常用圖標(biāo)庫(kù)下載:

https://download.csdn.net/download/qq_64257614/89109129

網(wǎng)上資料查閱網(wǎng)址貼出:

【W(wǎng)inform學(xué)習(xí)筆記(七)】Winform無(wú)邊框窗體拖動(dòng)功能_winform窗體拖動(dòng)-CSDN博客

?2020-12-07_窗體控件imagelist添加圖片-CSDN博客

WinForm中遇到Label要顯示的內(nèi)容太長(zhǎng),自動(dòng)換行_winform 相鄰兩個(gè)label當(dāng)一個(gè)label過(guò)大時(shí),另一個(gè)位置自動(dòng)調(diào)整-CSDN博客

?

http://m.risenshineclean.com/news/57946.html

相關(guān)文章:

  • 網(wǎng)站開(kāi)發(fā)中網(wǎng)頁(yè)上傳今天的新聞發(fā)布會(huì)
  • 免費(fèi)代理做企業(yè)網(wǎng)站重慶疫情最新情況
  • 論壇網(wǎng)站搭建網(wǎng)絡(luò)熱詞2022
  • wordpress 好評(píng)插件優(yōu)化設(shè)計(jì)六年級(jí)下冊(cè)數(shù)學(xué)答案
  • 推廣網(wǎng)站源碼百度網(wǎng)站制作
  • 組織建設(shè)情況怎么寫(xiě)哈爾濱seo優(yōu)化軟件
  • 網(wǎng)站建設(shè)保教長(zhǎng)沙seo優(yōu)化哪家好
  • 網(wǎng)站怎樣制作seo網(wǎng)站優(yōu)化方案摘要
  • 制作網(wǎng)站首頁(yè)的步驟永久開(kāi)源的免費(fèi)建站系統(tǒng)
  • 臺(tái)州做網(wǎng)站的公司有哪些公司電子商務(wù)平臺(tái)建設(shè)
  • 幫朋友做網(wǎng)站 知乎seo概念的理解
  • 怎樣查網(wǎng)站用什么程序做的今天頭條新聞100條
  • 自己的網(wǎng)站在哪里找線(xiàn)上推廣渠道
  • 怎么看網(wǎng)站源碼用什么做的營(yíng)銷(xiāo)廣告文案
  • 怎么做視頻網(wǎng)站賺錢(qián)嗎長(zhǎng)春網(wǎng)站提升排名
  • 怎樣做私人網(wǎng)站重慶今天剛剛發(fā)生的重大新聞
  • 自己做的網(wǎng)站怎么連接計(jì)算機(jī)網(wǎng)絡(luò)推廣策劃案
  • 替人做賭彩網(wǎng)站被判刑外鏈推廣軟件
  • php網(wǎng)站用到的知識(shí)紹興百度seo
  • 百度首頁(yè)網(wǎng)站的設(shè)計(jì)詞語(yǔ)搜索排行
  • 網(wǎng)站建設(shè)說(shuō)課獲獎(jiǎng)視頻seo優(yōu)化排名百度教程
  • 鹽城市濱??h建設(shè)局網(wǎng)站seo搜索引擎優(yōu)化名詞解釋
  • 如何做外貿(mào)網(wǎng)站自動(dòng)seo優(yōu)化
  • 外貿(mào)網(wǎng)站開(kāi)發(fā)定制廣東廣州網(wǎng)點(diǎn)快速網(wǎng)站建設(shè)
  • 怎么做網(wǎng)站美工宣傳推廣渠道有哪些
  • 山西企業(yè)網(wǎng)站建設(shè)網(wǎng)站注冊(cè)地址
  • 設(shè)計(jì)門(mén)戶(hù)網(wǎng)站seo網(wǎng)站診斷流程
  • 柯橋建設(shè)局網(wǎng)站制作一個(gè)簡(jiǎn)單的網(wǎng)站
  • 網(wǎng)站開(kāi)發(fā)的報(bào)告自己怎么做網(wǎng)站網(wǎng)頁(yè)
  • 做banner的在線(xiàn)網(wǎng)站最常見(jiàn)企業(yè)網(wǎng)站公司有哪些