999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

WinForm界面統(tǒng)一管理方法研究

2017-09-29 15:59:06繆平朱曉輝丁浩
軟件導刊 2017年9期

繆平 朱曉輝 丁浩

摘 要:隨著軟件規(guī)模的擴大和復雜性的提高,通常使用團隊開發(fā)模式完成軟件的設(shè)計與開發(fā),通過多人分工協(xié)作可有效提升軟件開發(fā)效率,但也存在編碼風格不一致、命名方式不規(guī)范、界面風格不統(tǒng)一等問題,導致后期維護困難,也給用戶使用帶來不便。針對以上問題,基于WinForm界面的統(tǒng)一管理與優(yōu)化提出了用戶界面自定義和軟件界面統(tǒng)一管理兩種方式。實驗結(jié)果表明,這兩種方式能夠在保證項目開發(fā)效率的基礎(chǔ)上使命名方式規(guī)范、控件風格一致,令開發(fā)的軟件更方便用戶使用。

關(guān)鍵詞:WinForm;用戶界面自定義;軟件界面統(tǒng)一管理

DOI:10.11907/rjdk.171407

中圖分類號:TP301 文獻標識碼:A 文章編號:1672-7800(2017)009-0001-03

Abstract:With the increase of complexity and scale of software development, the team development model is usually used to design and develop software, which can improve software development efficiency with the help of cooperation between team members. However, it can also result in several issues such as inconsistent coding style, irregular naming rules, incongruous graphical user interface (GUI) and so on and make the software difficult to maintain and inconvenient to use. Based on these observation, we propose a user-defined GUI methodology and a unified GUI management to manage and optimize the GUI of WinForm applications. Experiment results show that these two methods can not only improve the software development efficiency but also can keep the consistent coding style and naming rules and make the software easier to use.

Key Words:WinForm; user-defined GUI; unified GUI management

0 引言

隨著計算機軟件技術(shù)的發(fā)展以及軟件開發(fā)規(guī)模的逐漸擴大,各種開發(fā)平臺得到了廣泛運用[1]。WinForm是.Net開發(fā)平臺中對Windows Form的一種稱謂。.NET開發(fā)平臺具有開發(fā)效率高、人機交互界面友好等優(yōu)勢。從用戶角度而言,WinForm人機界面友善,且程序開發(fā)完成并發(fā)布后僅需消耗少量的服務器資源,從而節(jié)約了大量成本[2]。而且WinForm系統(tǒng)對數(shù)據(jù)庫處理提供全面支持,可以訪問數(shù)據(jù)庫中的數(shù)據(jù),并在窗體上顯示和操作數(shù)據(jù);對軟件開發(fā)人員而言,WinForm系統(tǒng)維護更加容易,且WinForm控件使用靈活,減少了軟件開發(fā)人員的代碼編寫難度,提高了軟件開發(fā)效率。同時,WinForm控件具有向?qū)Чδ埽蔀檐浖_發(fā)者提供窗體創(chuàng)建、數(shù)據(jù)處理、打包和部署等分步指導,非常適合新手入門使用。因此,使用WinForm的軟件開發(fā)者逐漸增多。然而,軟件開發(fā)中編碼風格不一致、命名方式不規(guī)范、界面風格不統(tǒng)一等問題,將導致后期維護困難,并給用戶使用帶來極大困難[3],例如:對用于表示“公司編號”的Label控件,由于缺少統(tǒng)一規(guī)范,使得軟件開發(fā)人員將其表示為“公司”、“公司號”等,導致用戶在使用過程中因這些不同名稱而產(chǎn)生困擾。同時,對于一個大規(guī)模的項目而言,因前期系統(tǒng)開發(fā)中字段命名的隨意性,使得后期維護十分困難,軟件開發(fā)者將花費大量時間作維護。為解決這一問題,開發(fā)了自定義控件,通過自定義字段與數(shù)據(jù)庫連接,獲取控件界面規(guī)范,使控件自動生成統(tǒng)一、規(guī)范的界面。同時,為自定義控件開發(fā)一個用戶界面自定義功能,使用戶能夠自定義控件界面屬性,以增強軟件易用性。

1 WinForm界面統(tǒng)一管理

在軟件開發(fā)中,WinForm控件的統(tǒng)一優(yōu)化管理分為兩大類:①用戶按需求自定義修改;②程序員開發(fā)時通過自定義控件規(guī)范控件各種屬性。其中,用戶自定義修改可使用戶根據(jù)需求,給相應控件添加備注來自定義程序的用戶界面。同時,針對現(xiàn)有程序中同一類型控件名稱不統(tǒng)一的問題,用戶可以通過自定義控件屬性進行手動修改,既滿足了用戶需求,又實現(xiàn)了控件屬性的統(tǒng)一化。通過自定義控件來規(guī)范控件名稱則是在系統(tǒng)初始階段就進行統(tǒng)一化的管理。圖1為系統(tǒng)界面統(tǒng)一管理的兩個流程[4]。

1.1 軟件界面統(tǒng)一管理

在WinForm開發(fā)中,Visual Studio雖然自帶大量控件,這些控件使用靈活、簡單,但只依靠這些控件無法滿足用戶的各種界面需求,而自定義控件能夠使程序員在開發(fā)中定義一些滿足自己需要的特殊控件。這些控件可以在原控件基礎(chǔ)上重新定義一些屬性,以滿足特殊的功能需求。在WinForm界面的統(tǒng)一管理與優(yōu)化過程中,為了保持控件運行時界面風格的一致性,通過修改自定義控件中的AutoId值來自動查詢控件屬性數(shù)據(jù)庫,并獲得控件所有屬性。操作流程如圖2所示。

在數(shù)據(jù)庫中,不同的AutoId表示不同類型的自定義控件,通過AutoId與窗體上的自定義控件相關(guān)聯(lián),從而為這些控件提供統(tǒng)一的界面屬性標準。表1為控件屬性數(shù)據(jù)表結(jié)構(gòu)。endprint

1.1.1 自定義控件開發(fā)

以DataGridView為例來說明自定義控件開發(fā)過程。該控件需要修改每列的列名:HeaderText。自定義一個名為UDataGridView的控件,該控件在DataGridView的基礎(chǔ)上創(chuàng)建一個新的數(shù)組屬性,數(shù)組中的每個元素代表控件中對應的列[5],通過查詢數(shù)據(jù)庫自動獲取每一列對應的HeaderText屬性值。其基本過程如下:

(1)創(chuàng)建自定義控件,并將自定義控件命名為UDataGridView,該控件的創(chuàng)建是為了代替DataGridView。因此,該控件繼承了DataGridView類。

(2)定義一個新的屬性,命名為AutoId。

private string[] autoId=new string[10];

public string[] AutoId {

get

{

return autoId;

}

set

{

if (autoId != null)

{

autoId = value;

OnIdChanged(this, new EventArgs());

}

}

}

(3)定義一個事件,在事件中使控件HeaderText的值根據(jù)AutoId的變量進行變更。

private void UDataGridView_OnIdChanged(object sender, EventArgs e)

{

try

{

for (inti = 0; i

{

DataGridViewTextBoxColumn c1 = new DataGridViewTextBoxColumn();

this.Columns.Insert(i,c1);

this.Columns[i].HeaderText =Name[i];

}

}catch (Exception ex)

{

throw new Exception("標簽自動賦值失敗!\\n" +

ex.Message);

}

}

(4)在控件初始化事件中綁定該事件。

(5)由于控件本身自帶某些事件,因此其它事件可以通過重寫的方法實現(xiàn),如:因text值更改而改變控件的寬度,可以重寫OnTextChanged(EventArgs e)方法。

1.1.2 自定義控件使用效果

在自定義控件代碼編寫完成后,進行重新編譯,在工具箱中找到自定義控件,如圖3所示。點擊UDataGridView按鈕移動至Form界面,在UDataGridView屬性列中可以查看定義的屬性AutoId,如圖4所示。因為AutoId是一個數(shù)組形式,在賦值時,點擊AutoId賦值按鈕,彈出賦值界面,根據(jù)操作指南在賦值界面中輸入cid、age、name,控件會根據(jù)這3個字段依次查詢數(shù)據(jù)庫,獲取數(shù)據(jù)庫信息,創(chuàng)建UDataGridView控件的屬性列,并根據(jù)數(shù)據(jù)庫信息,給相應的屬性列賦值。

1.2 用戶自定義界面

1.2.1 自定義界面設(shè)計與開發(fā)

通過自定義控件在軟件開發(fā)階段實現(xiàn)了命名方式和控件界面的一致性。但是,用戶對于數(shù)據(jù)庫中的控件規(guī)范化管理規(guī)則可能不太滿意,希望能夠自定義界面,以滿足自身需求。為此,本文開發(fā)了用戶自定義界面功能,其流程如下:①用戶右擊需要進行界面自定義的控件;②點擊修改樣式,彈出修改樣式界面,用戶可在界面中修改控件顏色、內(nèi)容、字體等屬性;③在相應的文本框中填寫需要修改的樣式,并將修改后的結(jié)果存入數(shù)據(jù)庫中;④自動修改相應控件的各類屬性;⑤當用戶對自身設(shè)計的控件屬性不滿意時,在樣式修改界面中點擊還原按鈕,控件將還原成初始狀態(tài)。

在WinForm需要通過事件來觸發(fā)功能調(diào)用,若每修改一個控件屬性就要編寫一個點擊事件跳轉(zhuǎn)到用戶自定義界面,則會大大增加工作難度。因此,將跳轉(zhuǎn)界面寫到函數(shù)中,在Form加載時遍歷所有控件,自動為每個控件添加自定義界面事件,并通過參數(shù)調(diào)用函數(shù)。

1.2.2 數(shù)據(jù)庫設(shè)計

自定義界面數(shù)據(jù)庫如表2所示,由于不同用戶對同一界面有不同的自定義需求。因此,表2加入了用戶信息。

1.2.3 界面初始化

由上文可知,在用戶修改界面之后,會將修改控件的信息存入數(shù)據(jù)庫。因此,在每一個窗體界面啟動過程中,需要將已被用戶修改的控件重新賦值。這里使用遍歷控件的方法來修改控件屬性,但是對于一些特殊的組合控件,用戶修改的是組合控件內(nèi)部的控件,僅僅通過遍歷的方式無法獲得界面中的所有控件。因此,在系統(tǒng)遍歷之前需要將所有組合控件存入數(shù)據(jù)庫,具體操作流程如下:①遍歷空間中的所有組合控件,將組合控件存入數(shù)據(jù)庫中;②系統(tǒng)啟動時,遍歷所有控件,并查詢數(shù)據(jù)庫,若為數(shù)據(jù)庫中的組合控件,遍歷組合控件中的所有控件。將所有控件存入D={D1,…Dn}中;③查詢數(shù)據(jù)庫,若Di在數(shù)據(jù)庫中,依照數(shù)據(jù)庫修改控件Di的所有屬性。

2 結(jié)語

在WinForm界面統(tǒng)一化管理方法中,采用用戶界面自定義和軟件界面統(tǒng)一管理兩種方法可以使軟件在開發(fā)和運行過程中保持控件風格統(tǒng)一、命名方式規(guī)范。但系統(tǒng)還存在一些問題,由于系統(tǒng)每次運行時,都需要遍歷系統(tǒng)中的所有控件,當控件數(shù)量很多時,系統(tǒng)將耗費一部分額外時間去處理,導致系統(tǒng)運行效率降低。為了改善這一問題,下一階段將重點研究如何在現(xiàn)有的管理方法中進一步提高軟件運行效率。同時,自定義控件的開發(fā)規(guī)則依賴于數(shù)據(jù)庫中存放控件的開發(fā)規(guī)則,這些開發(fā)規(guī)則目前需要手動錄入,因此控件規(guī)則的維護和完善仍然需要花費大量時間。

參考文獻:

[1] JOHNSHARP,夏普,周靖.Visual C# 2005從入門到精通[M].北京:清華大學出版社,2006.

[2] 劉輝,常婉綸.基于C#的Winform程序參數(shù)傳遞和同步顯示的實現(xiàn)[J].現(xiàn)代電子技術(shù),2010,33(14):64-66.

[3] 白雪冰.分析C#程序設(shè)計語言中參數(shù)的傳遞[J].電腦知識與技術(shù):學術(shù)交流,2007,3(8):749-750.

[4] 王海群.大型超市商店形象對顧客滿意與忠誠的影響研究[D].杭州:浙江大學,2006.

[5] 陳鋒文,周軍建.基于C#的學生成績管理系統(tǒng)的研究[J].軟件導刊,2012,11(1):33-34.

(責任編輯:黃 健)endprint

主站蜘蛛池模板: 少妇精品在线| 免费观看无遮挡www的小视频| 在线观看亚洲精品福利片| 成人va亚洲va欧美天堂| 欧美激情视频一区| 久久久久夜色精品波多野结衣| 免费啪啪网址| 免费在线色| 高清乱码精品福利在线视频| 色综合天天视频在线观看| 免费看黄片一区二区三区| 久久国产高清视频| 国产主播在线观看| 91热爆在线| 在线欧美国产| 久久综合婷婷| 亚洲精品国产日韩无码AV永久免费网 | 伊在人亚洲香蕉精品播放| 毛片基地美国正在播放亚洲 | 丝袜无码一区二区三区| 国产成人a在线观看视频| 国产一区二区三区夜色| 欧美精品v欧洲精品| 99手机在线视频| 亚洲第一中文字幕| 欧美97欧美综合色伦图| 成人小视频网| 无遮挡国产高潮视频免费观看| 黄色在线不卡| 国产高清在线观看| 亚洲精品福利视频| 国产一级一级毛片永久| 国产精欧美一区二区三区| 国产精品亚洲天堂| 亚洲欧美成aⅴ人在线观看| 女人天堂av免费| 国产精品jizz在线观看软件| 国产人人干| 毛片免费视频| 亚洲大学生视频在线播放 | 三上悠亚在线精品二区| 熟妇丰满人妻| 亚洲无卡视频| 99国产精品国产高清一区二区| 免费精品一区二区h| 久久久噜噜噜久久中文字幕色伊伊| 欧美www在线观看| 亚洲天堂区| 男人的天堂久久精品激情| 99久久成人国产精品免费| 黄片在线永久| 日韩不卡免费视频| www亚洲天堂| 一级全黄毛片| 亚洲国产综合自在线另类| 伊人久久大香线蕉成人综合网| 喷潮白浆直流在线播放| 国产区精品高清在线观看| 国产网站免费| 欧美不卡在线视频| 久久黄色一级片| 久久综合久久鬼| 欧美色视频日本| 天天摸夜夜操| 麻豆精品视频在线原创| 真人高潮娇喘嗯啊在线观看| 亚洲国产综合精品一区| 国产成人1024精品下载| 日本国产精品| 日韩欧美综合在线制服| 91口爆吞精国产对白第三集| 国产成人久视频免费| 四虎影视库国产精品一区| 精品欧美视频| AV熟女乱| 亚洲成人动漫在线| 国产69精品久久久久孕妇大杂乱| 国产精品自拍露脸视频| 午夜色综合| 曰韩免费无码AV一区二区| 国产精品自拍露脸视频 | 日本AⅤ精品一区二区三区日|