文档库 最新最全的文档下载
当前位置:文档库 › CListCtrl控件中InsertItem和SettItemtext函数的用法简介

CListCtrl控件中InsertItem和SettItemtext函数的用法简介

CListCtrl控件中InsertItem和SettItemtext函数的用法简介
CListCtrl控件中InsertItem和SettItemtext函数的用法简介

本人初次用CListCtrl控件的时候,对于InsertItem和SetrtItemtext两个函数的作用始终不是太懂,比如如果不先调用InsertItem这个函数,后面的InsertItemtext函数写了,也不起作用.查了MSDN,也没有收获,经过有人点拔,才恍然大悟.今天将经验说一下,希望有共同爱好者少走弯路.

InsertItem在MSDN中的函数原型如下

int InsertItem(const LVITEM* pItem );

int InsertItem( int nItem, LPCTSTR lpszItem );

int InsertItem( int nItem, LPCTSTR lpszItem, int nImage );

int InsertItem( UINT nMask, int nItem, LPCTSTR lpszItem, UINT nState, UINT nStateMask, int nImage, LPARAM lParam );

一般我们用的比较多的时第2种和第三种,其中第三种时建立一个带有头标的项

要调用第三个,可以先声明一个CImageList对象

m_ImageList.Create(16,16,true,2,2);

m_ImageList.Add(theApp.LoadIcon(IDR_MAINFRAME));

m_ListCtrl.SetImageList(&m_ImageList,LVSIL_SMALL);

这样,控件中的每一行的开头就有一个应用程序图标

现在转入正题,先介绍一下INSERTITEM个个参数的意义

nItem: 控件中行的索引

lpszItem :控件头的名字

........................................................................................................ .................................................................................................

SettItemtext函数的原型

BOOL SetItemText(int nItem,int nSubItem,LPTSTR lpszText );

******************注意这个函数中的参数nItem就是INSERTITEM中的NITEM,

也就是说InsertItem是向控件声请一行来放数据,记住只是声请,那么方数据的工作就又SETITEMTEXT来实现

举例如下:

CListCtrl m_listctrl;

m_listctrl = new ClistCtrl();

m_listctrl.Creae(WS_CHILD|WS_VISIBLE|WS_BORDER|LVS_R EPORT|LVS_EDITLABELS

,bigRect,this,IDC_LIST1

);

m_listctrl.InsertItem(0,"01");

m_SetItemtext(0,1,"1");

m_SetItemtext(0,2,"2");

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

至于要添多少多少个数据,就由你的控件由多少列了

获得可以这样的道int columns=

m_listctr.GetHeaderCtrl()->GetItemCount();

获得可以这样的道int rows= m_listctrl.GetItemCount();

下面附一个本人学习的实例

// DataView.cpp : implementation of the CDataView class

//

#include "stdafx.h"

#include "Data.h"

#include "DataDoc.h"

#include "DataView.h"

#include "EditDlg.h"

#ifdef _DEBUG

#define new DEBUG_NEW

#undef THIS_FILE

static char THIS_FILE[] = __FILE__;

#endif

/////////////////////////////////////////////////////////////////////////////

// CDataView

IMPLEMENT_DYNCREATE(CDataView, CView)

BEGIN_MESSAGE_MAP(CDataView, CView)

//{{AFX_MSG_MAP(CDataView)

ON_COMMAND(IDM_USER, OnUser)

ON_COMMAND(IDM_UP, OnUp)

ON_COMMAND(IDM_DOWN, OnDown)

ON_COMMAND(IDM_EDIT, OnEdit)

ON_COMMAND(IDM_ADD, OnAdd)

ON_COMMAND(IDM_DELETE, OnDelete)

ON_COMMAND(IDM_SAVE, OnSave)

//}}AFX_MSG_MAP

// Standard printing commands

ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)

ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint) ON_COMMAND(ID_FILE_PRINT_PREVIEW,

CView::OnFilePrintPreview)

ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1)

ON_NOTIFY(NM_DBLCLK, IDC_LIST1, OnDblclkList1)

ON_NOTIFY(NM_KILLFOCUS, IDC_LIST1, OnKillfocusList1) END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////

// CDataView construction/destruction

CDataView::CDataView()

{

// TODO: add construction code here

m_nIndex = -1;

}

CDataView::~CDataView()

{

}

BOOL CDataView::PreCreateWindow(CREATESTRUCT& cs) {

// TODO: Modify the Window class or styles here by modifying // the CREATESTRUCT cs

return CView::PreCreateWindow(cs);

}

/////////////////////////////////////////////////////////////////////////////

// CDataView drawing

void CDataView::OnDraw(CDC* pDC)

{

CDataDoc* pDoc = GetDocument();

ASSERT_VALID(pDoc);

// TODO: add draw code for native data here

}

/////////////////////////////////////////////////////////////////////////////

// CDataView printing

BOOL CDataView::OnPreparePrinting(CPrintInfo* pInfo)

{

// default preparation

return DoPreparePrinting(pInfo);

}

void CDataView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) {

// TODO: add extra initialization before printing

}

void CDataView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) {

// TODO: add cleanup after printing

}

/////////////////////////////////////////////////////////////////////////////

// CDataView diagnostics

#ifdef _DEBUG

void CDataView::AssertValid() const

{

CView::AssertValid();

}

void CDataView::Dump(CDumpContext& dc) const

{

CView::Dump(dc);

}

CDataDoc* CDataView::GetDocument() // non-debug version is inline {

ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CDataDoc))); return (CDataDoc*)m_pDocument;

}

#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////

// CDataView message handlers

void CDataView::OnInitialUpdate()

{

CView::OnInitialUpdate();

// TODO: Add your specialized code here and/or call the base class CDC *dc = GetDC();

CRect rect;

this->GetClientRect(&rect);

CString str = "加载数据库资源到列表中";

CSize sz = dc->GetTextExtent(str);

rect.right = sz.cx;

rect.bottom = sz.cy;

CStatic *state = new CStatic;

state->Create(str,WS_CHILD,rect,this);

state->ShowWindow(SW_SHOW);

this->ReleaseDC(dc);

InitListCtrl(rect);

m_ImageList.Create(16,16,true,2,2);

m_ImageList.Add(theApp.LoadIcon(IDR_MAINFRAME));

}

void CDataView::InitListCtrl(CRect rect)

{

CRect bigRect;

this->GetClientRect(&bigRect);

bigRect.top = rect.bottom;

m_ListCtrl.Create(WS_CHILD|WS_VISIBLE|WS_BORDER|LVS_RE PORT|LVS_EDITLABELS

,bigRect,this,IDC_LIST1);

//m_ListCtrl.Insert(0,"用户名");

//m_ListCtrl.InsertItem(1,"密码");

CFont *m_pFont = new CFont();

m_pFont->CreateFont(20, // nHeight

0, // nWidth

0, // nEscapement

0, // nOrientation

FW_NORMAL, // nWeight

FALSE, // bItalic

FALSE, // bUnderline

0, // cStrikeOut

DEFAULT_CHARSET, // nCharSet

OUT_DEFAULT_PRECIS, // nOutPrecision

CLIP_DEFAULT_PRECIS, // nClipPrecision

DEFAULT_QUALITY, // nQuality

DEFAULT_PITCH | FF_SWISS, // nPitchAndFamily "Arial");

m_ListCtrl.SetFont(m_pFont);

m_ListCtrl.SetImageList(&m_ImageList,LVSIL_SMALL);

m_ListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX _GRIDLINES);

m_ListCtrl.SetBkColor(RGB(247,247,255));

m_ListCtrl.SetTextColor(RGB(0,0,255));

m_ListCtrl.SetTextBkColor(RGB(247,247,255));

m_ListCtrl.InsertColumn(0,"ID",LVCFMT_LEFT,100,-1);

m_ListCtrl.InsertColumn(1,"用户名",LVCFMT_LEFT,100,-1);

m_ListCtrl.InsertColumn(2,"密码",LVCFMT_LEFT,200,-1);

m_ListCtrl.InsertItem(0,"01");

m_ListCtrl.SetItemText(0,1,"chetnao");

m_ListCtrl.SetItemText(0,2,"921984");

m_ListCtrl.InsertItem(1,"02");

m_ListCtrl.SetItemText(1,1,"mada");

m_ListCtrl.SetItemText(1,2,"345678");

m_ListCtrl.InsertItem(2,"03");

m_ListCtrl.SetItemText(2,1,"luoxian");

m_ListCtrl.SetItemText(2,2,"987654");

}

extern CDataApp theApp;

void CDataView::OnUser()

{

// TODO: Add your command handler code here

_RecordsetPtr m_pRecordset;

try

{

m_pRecordset = theApp.m_pConnection->Execute("select * from user12",NULL,adCmdText);

}

catch(_com_error e)

{

AfxMessageBox(e.ErrorMessage());

AfxMessageBox(e.Description());

CString str;

str.Format("%ld",e.Error);

AfxMessageBox(str);

return;

}

if(m_pRecordset->BOF)

{

MessageBox("表中无记录");

return;

}

else

{

int len = m_ListCtrl.GetHeaderCtrl()->GetItemCount();

while(!m_pRecordset->adoEOF)

{

m_ListCtrl.InsertItem(2,(_bstr_t)m_pRecordset->GetCollect("I D"));

m_ListCtrl.InsertItem(1,(_bstr_t)m_pRecordset->GetCollect("user name"));

m_ListCtrl.InsertItem(0,(_bstr_t)m_pRecordset->GetCollect("pa ssword"));

/*for(int i=0;i

{

m_ListCtrl.SetItemText(i,0,(_bstr_t)m_pRecordset->GetCollect("I D"));

m_ListCtrl.SetItemText(i,1,(_bstr_t)m_pRecordset->GetCollect("u sername"));

m_ListCtrl.SetItemText(i,2,(_bstr_t)m_pRecordset->GetCollect("p assword"));

}*/

m_pRecordset->MoveNext();

}

}

}

void CDataView::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult)

{

POSITION pos = m_ListCtrl.GetFirstSelectedItemPosition();

m_nIndex = m_ListCtrl.GetNextSelectedItem(pos);

}

void CDataView::OnDblclkList1(NMHDR* pNMHDR, LRESULT* pResult)

{

POSITION pos = m_ListCtrl.GetFirstSelectedItemPosition();

m_nIndex = m_ListCtrl.GetNextSelectedItem(pos);

CEditDlg dlg;

dlg.m_strNo = m_ListCtrl.GetItemText(m_nIndex,0);

dlg.m_strName = m_ListCtrl.GetItemText(m_nIndex,1);

dlg.m_strPassword = m_ListCtrl.GetItemText(m_nIndex,2);

if(IDOK == dlg.DoModal())

{

m_ListCtrl.SetItemText(m_nIndex,0,dlg.m_strNo);

m_ListCtrl.SetItemText(m_nIndex,1,dlg.m_strName);

m_ListCtrl.SetItemText(m_nIndex,2,dlg.m_strPassword);

}

*pResult = 0;

}

void CDataView::OnUp()

{

// TODO: Add your command handler code here

m_ListCtrl.SetFocus();

if(m_nIndex == -1)

{

MessageBox("请选择一行!");

return ;

}

if(m_nIndex == 0)

{

MessageBox("你选中的行已经时顶行!");

return ;

}

CString strNo,strName,strPassword;

strNo = m_ListCtrl.GetItemText(m_nIndex,0);

strName = m_ListCtrl.GetItemText(m_nIndex,1);

strPassword = m_ListCtrl.GetItemText(m_nIndex,2);

m_ListCtrl.DeleteItem(m_nIndex);

m_ListCtrl.InsertItem(m_nIndex-1,strNo);

m_ListCtrl.SetItemText(m_nIndex-1,1,strName);

m_ListCtrl.SetItemText(m_nIndex-1,2,strPassword);

m_nIndex--;

m_ListCtrl.SetItemState(m_nIndex,LVIS_FOCUSED|LVIS_SELECTE D,LVIS_FOCUSED|LVIS_SELECTED);

}

void CDataView::OnKillfocusList1(NMHDR* pNMHDR, LRESULT* pResult)

{

m_nIndex = -1;

}

void CDataView::OnDown()

{

// TODO: Add your command handler code here

m_ListCtrl.SetFocus();

if(m_nIndex == -1)

{

MessageBox("请选择一行!");

return ;

}

if(m_nIndex == m_ListCtrl.GetItemCount()-1)

{

MessageBox("已经时最后一行!");

return ;

}

CString strNo,strName,strPassword;

strNo = m_ListCtrl.GetItemText(m_nIndex,0);

strName = m_ListCtrl.GetItemText(m_nIndex,1);

strPassword = m_ListCtrl.GetItemText(m_nIndex,2);

m_ListCtrl.DeleteItem(m_nIndex);

m_ListCtrl.InsertItem(m_nIndex+1,strNo);

m_ListCtrl.SetItemText(m_nIndex+1,1,strName);

m_ListCtrl.SetItemText(m_nIndex+1,2,strPassword);

m_nIndex++;

m_ListCtrl.SetItemState(m_nIndex,LVIS_FOCUSED|LVIS_SELE CTED,LVIS_FOCUSED|LVIS_SELECTED);

}

void CDataView::OnEdit()

{

// TODO: Add your command handler code here

POSITION pos = m_ListCtrl.GetFirstSelectedItemPosition();

m_nIndex = m_ListCtrl.GetNextSelectedItem(pos);

if(m_nIndex == -1)

{

MessageBox("请选择一行!");

return ;

}

CEditDlg dlg;

dlg.m_strNo = m_ListCtrl.GetItemText(m_nIndex,0);

dlg.m_strName = m_ListCtrl.GetItemText(m_nIndex,1);

dlg.m_strPassword = m_ListCtrl.GetItemText(m_nIndex,2);

if(IDOK == dlg.DoModal())

{

m_ListCtrl.SetRedraw(false);

m_ListCtrl.DeleteItem(m_nIndex);

m_ListCtrl.InsertItem(m_nIndex,dlg.m_strNo);

m_ListCtrl.SetItemText(m_nIndex,1,dlg.m_strName);

m_ListCtrl.SetItemText(m_nIndex,2,dlg.m_strPassword);

m_ListCtrl.SetRedraw(true);

}

}

void CDataView::OnAdd()

{

// TODO: Add your command handler code here

CEditDlg dlg;

if(dlg.DoModal() == IDOK)

{

int

count=m_ListCtrl.InsertItem(m_ListCtrl.GetItemCount(),dlg.m_strNo); m_ListCtrl.SetItemText(count,1,dlg.m_strName);

m_ListCtrl.SetItemText(count,2,dlg.m_strPassword);

}

}

void CDataView::OnDelete()

{

// TODO: Add your command handler code here

if(m_nIndex == -1)

{

MessageBox("请选择一行!");

return ;

}

m_ListCtrl.DeleteItem(m_nIndex);

UINT flag = LVIS_SELECTED|LVIS_FOCUSED;

m_ListCtrl.SetItemState(m_nIndex-1, flag, flag);

}

void CDataView::OnSave()

{

// TODO: Add your command handler code here

CFile f;

if(f.Open("save.txt",CFile::modeCreate|CFile::modeWrite,NULL)) {

CString str="ID号\t\tusername\t\tpassword\r\n";

f.Write(str,strlen(str)+1);

for(int i=0;i

{

str=m_ListCtrl.GetItemText(i,0)+"\t\t"+m_ListCtrl.GetItemText(i,1)+ "\t\t"+m_ListCtrl.GetItemText(i,2)+"\r\n";

f.Write(str,strlen(str)+1);

}

f.Close();

MessageBox("保存成功!");

}

else

{

MessageBox("保存失败!");

}

}

dotnetbar控件用法

DotNetBar介绍 DotNetBar是一款带有51个Windows Form 控件的工具箱,使开发人员可以轻而易举地创建出专业美观的Windows Form应用程序用户界面,控件全部采用C#编写,引入了全部Office 2007 style Ribbon控件、Office 2003 样式、支持Windows XP主题等。 DotNetBar for WindowsForms 8.8 全面支持Office 2010 风格的后台应用程序菜单。 具体功能: ●为Office 2007 Ribbon 控件提供了Black,Silver ,Blue三种配色方案,支持Windows Vista Glass、tab groups, ribbon hyper menus, multi-level KeyTips, complete Quick Access Toolbar (QAT),支持Ribbon Menu Tabs ●Office 2007 Ribbon Bar 控件具有组合按钮,弹出按钮等 ●Office 2007 Super Tooltips控件具有18种颜色样式 ●支持停靠窗口自动隐藏,灵活的视图分割 ●支持具有Office 2007, https://www.wendangku.net/doc/1d9272989.html, 2005, Office 2003/XP/2000,样式的Hyper-Menus 和工 具条 ●支持具有Office 2007和2003样式的导航面板,支持扩展和收缩 ●Tab Container控件具有9种不同的样式,16种配色方案,支持颜色自定制 ●Explorer Bar控件使程序员可以创建出具有XP样式的Explorer Bar ●Tab-Strip控件具有九种预定义的样式,支持tabbed MDI ,颜色自定义 ●Side Bar 控件具有两种布局类型、5种不同的样式、18种预定义颜色方案,支持拖拉功能 ●BubbleBar 是一个灵活的toolbar控件 ●Stand alone Bar可以用于创建具有Office 2007 的状态条 ●可扩展的Splitter控件 ●可展开的Panel控件, ●多功能的Panel控件 ●Balloon/Alert控件用于传达一些重要的信息给最终用户 ●Wizard控件支持Wizard97规范,可以创建安装文件。 ●ButtonX 是一个卓越的按钮控件 ●Color Picker控件可以创建具有Office 2007样式的下拉式颜色采集器,程序员也可以自定义 颜色对话框

DotNetBar使用简介

DotNetBar使用简介 这里都是我自从去年开始用dotnetbar这个vs上的美化控件之后的一些使用心得和使用技巧,我现在几乎每次用到这个控件的时候,都会按照下面的技巧,来安排我的这些控件的排列方式啊,style等等,希望给各位一些抛砖引玉的作用,也欢迎大家写出自己的小技巧,让我们的winform程序更加漂亮~~ 几个修改的地方 1、RIBBONTITLE,一开始要留空,后来用代码修改 2、把左上角的圆点的功能删除掉 3、左上角要写成:系统状态:联通中 4、 下来要解决一个问题,就是关于DATAGRID,的TITLE,都要让所有的名称都排下,不要换行 使用RIBBONCONTROL要注意的几个问题: 1、首先将form的text设置为空 2、然后将form的controlbox设置为false 3、然后将form的formborderstyle设置为Sizable 4、最后一步,在ribboncontrol的标题栏写窗口标题,注意不是text而是RibbonControl1.TitleText = “非煤矿山应急救援指挥系统–基本情况数据库” 5、如果你喜欢,我习惯将FORM的STARTPOSITION设置为CENTERSCREEN 使用BAR作为STATESBAR的几个小技巧 1、这个BAR是DOTNETBAR系列里的BAR,而不是其他的:》 2、要将STYLE设置为OFFICE2007 3、将ROUNDCORDERS设置为FALSE会好看一点,我试了试,圆角的怎么看都

不舒服 4、将BARTYPE设置为STATUSBAR 使用GROUPPANEL的小技巧: 1、把BACKCOLOR设置为透明 2、将style中的textlinealignment 设置为center(ps:之前是near实在有点难看,太贴近上部了) 3、内部的label一般使用vs自带的标准label即可,不需要使用ribbon的labelx,我觉得肯定会涉及到painting的问题导致性能下降,而且我觉得 使用PANELEX 1、一般要设置padding为1,1,1,1否则,当内部空间维DOCK FILL的时候,会把PANEL的边框挡住,效果不好看 2、如果PANELEX就在RIBBONCONTROL的里面,一般设置LOCATION为3,0,同时在右侧拖动的时候,拖动到一个恰好位置之后,再把SIZE的宽度加4,这样效果很好 对TABLE类窗口的修改 1、去掉原点下的菜单 2、去掉系统:联通中,右侧的那个QUICKITEM 3、将DATAGRIDVIEWX的LOCATION调整到3,3,同时,将宽度向右增加2 4、将每一个PANELX的TEXT都留空 美化DATAGRIDVIEWX的几点 1、修改ALTERNATINGROWSDEFAULTCELLSTYLE的BACKCOLOR 2、修改COLUMNHEADERSHEIGHT 建立RIBBONCONTROL的几点小细节 1、建立一个FORM,将form的text设置为空,将controlbox设置为false,将startposition设置为centerscreen;

C# 开发复用标准化v1.0

C#开发标准化 (仅供内部使用) V 1.0.0 文档作者:日期: 开发/测试经理:_____________________ 日期: 产品经理:____________________ 日期: 管理办:_____________________ 日期: 浪潮通信信息系统有限公司 版权所有不得复制 本文档版权由浪潮信息系统有限公司所有。未经本公司书面许可,任何单位与个人不得以任何形式摘抄、复制文档的部分或全部,并以任何形式传播

文档修订 抄送人: 编号说明: 本文档编号依照以下原则进行: X.Y.Z X:大版本更新,文档结构变化 Y:具体方案的更改,部分内容的修正 Z: 文字修改,奇数为包含对上一版修改记录的稿子偶数为对上修改稿的定稿

目录 1.标准控件的标准化 标准的控件主要包括:Edit Box、Check Box、Radio Button、Normal Button、Picture Button、List Box、Combox、Label、Groupbox、Progress Bar、Tree Control、Extend Tree Control、Slider、Tab Control、Datetime Control、Month Calendar、Chart control 1.1. Normal Button(按钮): 1.1.1.模板样式 1.1. 2.风格标准化描述 ●上面模板中的风格是在winxp操作系统下呈现的样式; ●使用VS2005默认属性设置。

1.1.3.实现技术、相关组件及用法 ●.NET(2005)标准控件。 1.2. 1.2Picture Button(ButtonX): 1.2.1.模板样式 1.2.2.风格标准化描述 ●上面模板中的风格是在winxp操作系统下呈现的样式; ●DotNetBar中的ButtonX控件; ●上面模板在VS2005开发环境中使用。 1.2.3.实现技术、相关组件及用法 ●用上面的控件能够根据属性设置的不同呈现不同的样式; ●控件“ButtonX”的使用参见DotNetBar中的相关例子,如果按默认路径安装DotNetBar 路径应该是“C:\Program Files\DotNetBar\Samples\ButtonX”。

dotbar2使用技巧

1----------------------------------------------------- DotNetBar的SuperTooltip控件使用技巧 DotNetBar是一个顶尖的.net第三方表示层空间。作出来的窗口可以说是非常非常非常的cool!SuperTooltip控件主要可以用于实现提示框。在它提供的sample 中,实现了树视图中,鼠标移动到树节点上时显示的提示框。 我的一个项目中用到了树视图,在项目完成以后我决定把它用DotNetBar美化一下。在参考着sample的代码对我的代码进行修改和调试的过程中,我发现sample 的代码并不是拿来用就行了的,还是需要理解以后进行修改。 按照sample的代码,假设我们的Form Form1中有控件TreeView treeView1,那么为treeView1实现提示框的方法如下:(我没用窗口编辑器,只修改代码来着) 1在项目的引用中添加DevComponents.DotNetBar。新建一个类NodeSuperTooltipProvider,将sample中的这个类的代码复制过来。注意,如果你的程序里的树节点不是用的.net自带组件TreeNode,而是从TreeNode继承而来的自定义类型,那么将以下所有代码中的TreeNode都改成你自定义的类型,并且很多地方也要加入强制类型转换。 using System; using https://www.wendangku.net/doc/1d9272989.html,ponentModel; using System.Drawing; using System.Windows.Forms; namespace SuperTooltip { ///

/// Wrapper so SuperTooltips can be displayed for node objects. /// public class NodeSuperTooltipProvider : Component, DevComponents.DotNetBar.ISuperTooltipInfoProvider { private TreeNode m_Node=null; /// /// Creates new instance of the object. ///

DoNetBar使用教程

我这里讨论的版本是DotNetBar 6.7.0.1 for VS2005的破解版本,其他版本我一个是没有时间找到,另外也是因为大同小异 下载地址,见这里,如果还有哪个朋友下载不了,就加我QQ吧,如果你能提供一个群,我会写在这里,然后利用群空间来整理控件,方便你我 下载地址是 https://www.wendangku.net/doc/1d9272989.html,/soft/show.asp?id=2879&showasp=1&details.html 在VS2005中的添加方法与IRISSKIN2类似,不过我这里再说一次: 先把控件拷到你的程序BIN/Debug下,再到程序里,先引用,然后再工具栏新个一个选项,然后右键选择“选择项”菜单,在这个对话框里点浏览,里把这个DLL重新添加进来,这样,就可以把控件加到先项框里,接下来就是把控件拖到界面上,在代码里加上上面的说明的代码,就可以使用了。有好几十个空间,可以把你的程序装扮成office2007。很COOL!这里转几篇使用的日志: 1-----------------------------------------------------

DotNetBar的SuperTooltip控件使用技巧 DotNetBar是一个顶尖的.net第三方表示层空间。作出来的窗口可以说是非常非常非常的cool!SuperTooltip控件主要可以用于实现提示框。在它提供的sample中,实现了树视图中,鼠标移动到树节点上时显示的提示框。 我的一个项目中用到了树视图,在项目完成以后我决定把它用DotNetBar美化一下。在参考着sample的代码对我的代码进行修改和调试的过程中,我发现sample的代码并不是拿来用就行了的,还是需要理解以后进行修改。 按照sample的代码,假设我们的Form Form1中有控件TreeView treeView1,那么为treeView1实现提示框的方法如下:(我没用窗口编辑器,只修改代码来着) 1在项目的引用中添加DevComponents.DotNetBar。新建一个类NodeSuperTooltipProvider,将sample中的这个类的代码复制过来。注意,如果你的程序里的树节点不是用的.net自带组件TreeNode,而是从TreeNode继承而来的自定义类型,那么将以下所有代码中的TreeNode都改成你自定义的类型,并且很多地方也要加入强制类型转换。 using System; using https://www.wendangku.net/doc/1d9272989.html,ponentModel; using System.Drawing; using System.Windows.Forms; namespace SuperTooltip { ///

/// Wrapper so SuperTooltips can be displayed for node objects. /// public class NodeSuperTooltipProvider : Component, DevComponents.DotNetBar.ISuperTooltipInfoProvider

DotNet第三方控件使用笔记

DotNet第三方控件使用笔记 0、 1)ButtonX控件 可实现如下效果: 在ButtonX上,是否显示“图像,取决于“images“属性 2)在“buttomItem“控件中,是否“只是显示图像”,”只是文本”,还是“图像和文本都显示”,取决于 1、BalloonTio控件(气泡提示) (1)使用效果 1)效果一:在鼠标在控件上面停留时,出现提示信息,如下图: 2)效果二:当控件获得焦点时,也出现如上图一样的信息。 (2)实现上述两种效果的途径 1)将BalloonTip控件的“ShowBalloonOnFacus”属性设置为“False”即可实现,效果一。 2)将“ShowBalloonOnFacus”属性设置为“True”,即可实现效果二。 (3)设置BalloonTip显示的内容: 在欲设置该属性的控件的“BalloonTioOnFocus上的BalloonCaption”和 “BalloonTioOnHover上的BalloonCaption”属性中,分别设置这两种效果的“标 题”属性; 在“BalloonTioOnFocus上的BalloonText”和在“BalloonTioOnHover上的 BalloonText”属性中,分别设置这两种效果的“显示内容”的属性。

(4)属性“AlerAnimation”设置“BalloonTip”出现的效果, (5)“BalloonTip”除了出现在该控件附近,还可以出现在屏幕的右下角,示例程序如下: private AlertCustom m_AlertOnLoad=null; m_AlertOnLoad=new AlertCustom(); Rectangle r=Screen.GetWorkingArea(this); m_AlertOnLoa d.Location=new Point(r.Right-m_AlertOnLoad.Width,r.Bottom-m_AlertOnLoad.Height); m_AlertOnLoad.AutoClose=true; m_AlertOnLoad.AutoCloseTimeOut=15; m_AlertOnLoad.AlertAnimation=eAlertAnimation.BottomToTop; m_AlertOnLoad.AlertAnimationDuration=300; m_AlertOnLoad.Show(false);//false::指示该控件是否需要获得焦点才出现“BalloonTip” (6)“BalloonTip”除了可以通过“添加控件”的方式使用,也可以通过编程的方式使用,示例程序如下: DevComponents.DotNetBar.Balloon b=new DevComponents.DotNetBar.Balloon(); b.Style=eBallonStyle.Alert; b.CaptionImage=balloonTipFocus.CaptionImage.Clone() as Image; b.CaptionText="Balloon Status Information"; b.Text="Balloons are now enabled for Balloon Tip Test area. Hover mouse over the area and set the focus to any control."; b.AlertAnimation=eAlertAnimation.TopToBottom; b.AutoResize(); b.AutoClose=true; b.AutoCloseTimeOut=4; b.Owner=this;//指示父控件 b.Show(button2,false);//button2::指示在那个控件附近出现“BalloonTip” (7)还可以对“BalloonTip”出现时的效果进行程序控制,如下: // BalloonTriggerControl property returns control that invoked balloon // BalloonTriggerControl属性返回触发“BalloonTip”的控件 if(balloonTipHover.BalloonTriggerControl==groupBox1) { // BalloonControl is already prepared Balloon control that is just about to be displayed // Setting BalloonControl to null will cancel balloon display Point p=Control.MousePosition; // Adjust cursor position so cursor is below tip p.Offset(-balloonTipHover.BalloonControl.TipOffset,balloonTipHover.BalloonControl.TipLength+ 4); //Offset属性将点p进行平移 balloonTipHover.BalloonControl.Location=p; } (8)与之类似的是DotNetToolTip所有控件都有的“ToolTip”属性,也可以是控件在鼠标划过时出现类

DotNetBar第三方控件使用笔记

DotNet第三方控件使用笔记 一、ButtonX控件 可实现如下效果: (1)在ButtonX上,是否显示图像,取决于“images”属性。 (2)在“ButtomItem”控件中,是否“只是显示图像”,“只是文本”,还是“图像和文本都显示”,取决于 。 二、BalloonTip控件(气泡提示) 在添加了BalloonTip控件后,其他各个控件会出现对应的“……上的BalloonText”和“……上的BalloonCaption”属性,通过修改这两个属性可设置鼠标移动到控件时弹出的气泡提示的标题和内容,也可通过代码设置这个两个属性,如: (txtUserName,"提示"); (txtUserName,"输入你的大名吧"); (txtUserPw,"提示; (txtUserPw,"大名输完了就是你的密码咯");") 1.{ 2.使用效果 1)效果一:在鼠标在控件上面停留时,出现提示信息,如下图: 2)效果二:当控件获得焦点时,也出现如上图一样的信息。 3.实现上述两种效果的途径 1)将BalloonTip控件的“ShowBalloonOnFacus”属性设置为“False”即可实现效 果一。 4.设置BalloonTip显示的内容 2)将“ShowBalloonOnFacus”属性设置为“True”,即可实现效果二。

1)在欲设置该属性的控件的“BalloonTipOnFocus上的BalloonCaption”和“Ballo onTipOnHover上的BalloonCaption”属性中,分别设置这两种效果的“标题” 属性; 2)。 3)在“BalloonTipOnFocus上的BalloonText”和在“BalloonTipOnHover上的Ballo onText”属性中,分别设置这两种效果的“显示内容”的属性。 5.属性“AlerAnimation”设置“BalloonTip”出现的效果 6.“BalloonTip”除了出现在该控件附近,还可以出现在屏幕的右下角,示例程序如 下: private AlertCustom m_AlertOnLoad=null; m_AlertOnLoad=new AlertCustom(); Rectangle r=(this); =new Point,false指示该控件是否需要获得焦点才出现“BalloonTip” 7.“BalloonTip”除了可以通过“添加控件”的方式使用,也可以通过编程的方式使 用,示例程序如下: b=new as Image; ="Balloon Status InFormation"; ' ="Balloons are now enabled for Balloon Tip Test area. Hover mouse over the area and set the focus to any control."; =; (); =true; =4; =t h i s;

Winform分页控件重大更新,并实现普通版、DotNetBar、DevExpress三大版本整合更新(附各种例子源码)

Winform分页控件重大更新,并实现普通版、DotNetBar、DevExpress三大版本整合更新(附各种例子源码) 在Winform开发中,一直离不开分页处理,好的分页控件封装,能为开发节省很多时间和繁琐工作,对分页控件一直的改进和完善,也是我的兴趣之一。本次主要实现对分页控件的全面重构,优化功能及界面的处理,并统一完成普通版、基于DotNetbar界面控件版本、DevExpress界面控件版本三大版本的发布,这几个界面版本,除了界面表现效果不一样外,所有的功能展示及使用代码完全一致,保证用户的知识投资及给客户良好的使用操作。本次主要增加的功能有:可通过界面设置列表显示的列,可复制选定的行信息,可设置显示的行号、可设置显示间隔行的颜色等功能。下面分别对几个例子的截图进行总体介绍,然后在详细介绍 1)普通版(即不引用任何第三方界面控件)效果图

上图中,红色的菜单是分页控件内置的菜单项,其他程序附加是扩展菜单项目,其中复制选定行信息、设置表格显示列、打印列表是对表格基本的操作功能。下面两个版本的控件右键菜单均表现一致。 2)基于DotNetbar界面控件版本 3)基于DevExpress界面控件版本

使用分页控件的基础代码,在所有以上版本中,代码均一致,只是一些特殊的操作,需要利用到不同的控件,有所差异而已。初始化分页控件代码如下所示。 private void FrmCustomer_Load(object sender, EventArgs e) { this.winGridViewPager1.ProgressBar = this.toolStripProgressBar1.Pro gressBar; this.winGridViewPager1.OnPageChanged += new EventHandler(winG ridViewPager1_OnPageChanged); this.winGridViewPager1.OnStartExport += new EventHandler(winGrid ViewPager1_OnStartExport); this.winGridViewPager1.OnEditSelected += new EventHandler(winGri dViewPager1_OnEditSelected); this.winGridViewPager1.OnDeleteSelected += new EventHandler(win GridViewPager1_OnDeleteSelected); this.winGridViewPager1.OnRefresh += new EventHandler(winGridVie wPager1_OnRefresh); this.winGridViewPager1.OnAddNew += new EventHandler(winGridVie

Dotnetbar使用记录笔记

1.我用vs2008编写的程序运行时怎么设置让他先打开哪个窗口 Program.cs 文件里Application.Run(new Frm_Main()); 运行哪个窗口 2.DevComponents.DotNetBar.RibbonControl去掉标题旁的下拉按钮框? 修改属性Quick Access Toolbr 下的CanCustomize 为false 3.DevComponents.DotNetBar.RibbonControl去掉自带的File菜单? 点击file菜单,在其属性中显示为DevComponents.DotNetBar.Office2007StartButton的属性,修改布局属性的Visible为false 一、在解决方案资源管理器中,右键添加新建项中,选择我的模板下的RibbonForm。 二、选择制作表头菜单的控件RibbonControl,再其RibbonPanel中可拖入控件ButtonX, ButtonX控件的外观属性Color Table选择为Orange,则其底色和RibbonPanel一致。 三、制作左侧的导航栏,选择控件ExpandablePanel,设置其Expand属性中的 CollapseDirection为RightToleft,在Titile属性中TitleText输入器文本显示内容。在ExpandalePanel中添加NavigationPanel控件,在该控件下方点击右键Create New Pane,则新建一个Pane,包括ButtonItem和对应的NavigationPanePanel。选择一个ButtonItem 再其外观属性ButtonStyle中选择为ImageAanText显示方式,可在Image属性处设置要显示的图片,在Text属性处添加要显示的文本内容,如需在鼠标停在此ButtonItem时显示提示,可在ToolTip处设置显示的文本内容。

客户关系管理系统系统总体设计分析说明书模板

编号001 版本V1.0 总体设计说明书 项目名称:客户关系管理系统 项目负责人陈一鸣 编写赵子贺 校对陈一鸣 审核康林 单位:20132013班第1小组

2015年10月8日

目录 1引言 (1) 1.1编写目的 (1) 1.2背景 (1) 1.3定义 (1) 1.4参考资料 (1) 2总体设计 (2) 2.1需求规定 (2) 2.1.1系统功能 (2) 2.1.2系统性能 (2) 2.1.3输入、输出需求 (3) 2.2运行环境 (3) 2.2.1硬件平台 (3) 2.2.2软件环境 (3) 2.3基本设计概念和处理流程 (3) 2.3.1系统设计思想 (3) 2.3.2拓扑结构和计算模式 (6) 2.3.3系统管理流程 (6) 2.4结构 (7) 2.4.1系统总体结构 (7) 2.4.2系统界面 (8) 2.4.3系统功能分析 (9) 2.4.3系统操作人员及其权限 (10) 2.5功能需求与程序的关系 (10) 2.6人工处理过程 (11) 2.7尚未问决的问题 (11) 3接口设计 (11) 3.1用户接口 (11) 3.2外部接口 (11) 3.3内部接口 (12) 4运行设计 (13) 4.1运行模块组合 (13) 4.2运行控制 (13) 4.3运行时间 (13) 5系统数据结构设计 (14) 5.1逻辑结构设计要点 (14) 5.2物理结构设计要点 (16) 5.3数据结构与程序的关系 (16) 6系统出错处理设计 (16) 6.1出错信息 (16) 6.2补救措施 (17) 6.3系统维护设计 (17)

1引言 1.1编写目的 本文档的目的是阐述客户关系管理系统的总体设计,全面充实客户关系管理系统在前一阶段中的设计构想,主要内容包括系统的平台设计、基本处理流程、系统的组织结构、模块划分和功能分配等,为系统的详细设计以及今后的编码测试工作提供基础。本文档的预期读者为系统设计人员、软件开发人员以及项目评审人员。 1.2背景 A.待开发的软件系统的名称:客户关系管理系统 B.项目的任务提出者:XX酒店 C.项目开发者:哈尔滨工程大学软件工程专业20132013班第1小组 1.3定义 在概要设计说明书中涉及到的专门术语有:总体设计、接口设计、运行设计、系统数据结构设计、系统出错处理设计,具体的概念与含义在文档中将会解释。 1.4参考资料 [1]余志山.酒店电子商务体系的组织结构探讨[J].决策与信息(下旬刊),2009,(2):158.DOI:10.3969/j.issn.1002-8129-B.2009.02.107. [2]王保伦.我国旅游酒店组织结构再造研究[J].旅游学刊,2001,16(6):43-48.DOI:10.3969/j.issn.1002-5006.2001.06.009. [3]于淼.CRM的结构和内容解析[J].商业研究,2003,(3):101-103.DOI:10.3969/j.issn.1001-148X.2003.03.041. [4]周良,郑洪源,谢强等.客户关系管理系统设计研究[J].计算机应用研究,2002,19(9):108-109,131.DOI:10.3969/j.issn.1001-3695.2002.09.034. [5]齐佳音,李怀祖.客户关系管理(CRM)的体系框架分析[J].工业工程,2002,5(1):42-45.DOI:10.3969/j.issn.1007-7375.2002.01.011.

DotNetBar第三方控件使用笔记

DotNet第三方控件使用笔记 ButtonX控件 可实现如下效果: (1)在ButtonX上,是否显示图像,取决于“images”属性。 (2)在“ButtomItem”控件中,是否“只是显示图像”,“只是文本”,还是“图像和文本都显示”,取决于 。 BalloonTip控件(气泡提示) 在添加了BalloonTip控件后,其他各个控件会出现对应的“……上的BalloonText”和“……上的BalloonCaption”属性,通过修改这两个属性可设置鼠标移动到控件时弹出的气泡提示的标题和内容,也可通过代码设置这个两个属性,如: balloonTip1.SetBalloonCaption(txtUserName,"提示"); balloonTip1.SetBalloonT ext(txtUserName,"输入你的大名吧"); balloonTip1.SetBalloonCaption(txtUserPw,"提示; balloonTip1.SetBalloonT ext(txtUserPw,"大名输完了就是你的密码咯");") 使用效果 效果一:在鼠标在控件上面停留时,出现提示信息,如下图: 效果二:当控件获得焦点时,也出现如上图一样的信息。 实现上述两种效果的途径 将BalloonTip控件的“ShowBalloonOnFacus”属性设置为“False”即可实 现效果一。 设置BalloonTip显示的内容 将“ShowBalloonOnFacus”属性设置为“True”,即可实现效果二。 在欲设置该属性的控件的“BalloonTipOnFocus上的BalloonCaption”和“B

Winform分页控件使用说明书

Winform分页控件使用说明书 V0.1

目录 1.引言 (2) 1.1.背景 (2) 1.2.编写目的 (2) 1.3.参考资料 (2) 1.4.术语与缩写 (3) 2.WINFORM分页控件 (3) 2.1.控件特性 (3) 2.2.使用效果介绍 (3) 2.3.控件使用 (8) 2.3.1.添加到Visual Studio的工具箱 (8) 2.3.2.控件相关菜单 (9) 2.3.3.分页控件表头中文转义及显示字段控制 (10) 2.3.4.每页显示记录大小 (11) 2.3.5.表头全选操作 (12) 2.3.6.简单数据绑定 (13) 2.3.7.如何自定义数据列表的宽度。 (15) 2.3.8.如何实现多表关联的分页数据查询 (17) 2.3.9.如何实现附加语句查询 (18) 2.4.分页控件使用注意事项 (19)

1.引言 1.1. 背景 在Winform程序开发中,分页是永恒的话题,因为需要显示的数据总是很多很多,分页展示在程序性能和数据查看感官方面得到很好的平衡,是一种良好的编程习惯和UI设计。Winform中的分页控件可能没有https://www.wendangku.net/doc/1d9272989.html,世界中的分页控件那么丰富多彩,不过也有不少的分页控件可以采用,各个人的可能都有一些不同的东西,一些好的东西。就我而言,我希望控件能够尽可能的多一些功能,耦合性低一些,例如我不想是基于存储过程的,因为我很多程序需要使用Access作为数据库,一般来说,我还希望有导出Excel数据的功能,还有打印预览功能,由于我的数据源表头,如实体类集合、表格内容绑定的时候,表头是英文的,我需要变为中文的,其他的功能有则更好。一句话:良好封装、功能丰富,使用简便。 基于这个思想,我在Winform开发框架中引入一个Winform分页控件模块,这个控件能满足我绝大多数的分页应用及界面要求。该控件已经在我的共享软件中大量使用并得到升华,如Winform开发框架、WCF开发框架、酒店管理系统、备件仓库管理系统、送水管理系统软件、病人资料管理软件,以及其他为单位或个人定做的各种业务系统等等。 在软件开发过程中,为了节省开发时间,提高开发效率,统一用户处理界面,尽可能使用成熟、功能强大的分页控件,这款Winform环境下的分页控件,集成了数据分页、内容提示、数据打印、数据导出、表头中文转义等很多功能,由于集成性很好,省却很多功夫,专注客户的业务及变化即可,否则一项表头的中文转换就够呛,还不说数据的分页,由于整合性、一致性、稳定性等特点,客户使用感觉比较好。 1.2. 编写目的 本文档主要介绍《Winform分页控件》的特性以及如何在Winform业务系统中进行使用。 1.3. 参考资料

DotNetBar教程

DotNetBar教程 在DotNetBar教程(一)里,用一个实例介绍了DotNetBar在.NET环境下的使用(原文见https://www.wendangku.net/doc/1d9272989.html,/hans_gis/archive/2010/07/13/1776817.html),在本篇里,介绍一下ExpandablePanel 控件的用法。从其名称Expandable中可以意识到该控件是个具有伸缩性的控件,如此可以利用这个特点高效的利用有限的界面。 新建VB类型的名称为ExpandablePanel的项目,修改窗体类的定义,将Inherits System.Windows.Forms.Form改为Inherits DevComponents.DotNetBar.Office2007Form(和C#代码有少许差别),FrmMain类继承了DevComponents.DotNetBar.Office2007Form类,界面便由Windows窗体普通风格变成Office2007风格。添加ExpandablePanel1和ExpandablePanel2两个控件到窗体上,略做排版调整,如下图所示: CollapseDirection属性是该控件的最重要的属性之一。Expandablepanel控件的一个重要的特点就是可以收缩/展开,其CollapseDirection属性则可以设置其收缩展开的方向。CollapseDirection的属性值是一个枚举变量,可以取四个值,分别为BottomtoTop、ToptoBottom、RighttoLeft、LefttoRight 。修改Expandablepanel1的CollapseDirection为RighttoLeft,效果为由右至左收缩,由左至右展开。 ExpandablePanel本身也是一个容器,向ExpandablePanel1中添加ExpandablePanel3和ExpandablePanel4,设置它们的Dock属性为Top。添加ItemPanel控件到ExpandablePanel3中,并使得充满整个ExpandablePanel3内部区域。ItemPanel是一个特殊的容器,可以在其中添加多种类型的Item。右键点击ItemPanel1控件,选择Add Button项并单击,如此便添加了一个ButtonItem。 设置ExpandablePanel2的ColorSchemeStyle为Office2003风格,与ExpandablePanel2的风格做比较。最中效果图如下所示:

DotNetBar 教程

DotNetBar教程(一) DotNetBar是一组用于.NET Framework环境下的一组组件集,利用该组件集能够打造绚丽并且实用的应用程序界面,给开发人员提供极大的便利。关于DotNetBar,详情请参考其官方网站:https://www.wendangku.net/doc/1d9272989.html,该组件集目前最新版本是8.8(不知最近有没有升级版本),可以从该网站上下载到试用期为一个月的试用版本。 正常安装了DotNetBar组件集(前提:已经安装了Visual Studio)之后,会在Visual Studio的工具箱窗口新增一个DotNetBar选项卡,里面是一系列的DotNetBar控件,如图1所示。在安装目录下有一系列的源码示例可供参考。网络上也有很多版本的破解版本,不过只提供了一个动态链接库文件,建议使用人员从官网上下载一个试用版,可以参考其丰富的示例。 图1 DotNetBar选项卡一系列控件 下面给出一个C#实例,看看DotNetBar绚丽的效果吧。 在正确添加对DotNetBar的引用(DevComponents.Dotnetbar2),在代码中使用对应的命名空间(using DevComponents.DotNet Bar)之后,修改窗体类的定义,默认的窗体类定义如下 //此处Form完整的名称是System.Windows.Forms.Form,表示FrmMain窗体类是继承于System.Windows.Forms.Form类 public partial class FrmMain : Form { } 修改后如下 //此处Office2007Form完整的名称是DevComponents.DotNetBar.Office2007Form,表示FrmMain窗体类是继承于DevComponents.DotNetBar.Of fice2007Form类 public partial class FrmMain : Office2007Form { } 如此该窗体便变为Office2007风格了。添加BalloonTip和其它几个控件,利用BalloonTip的SetBalloonCaption和SetBalloonText 方法为相应的控件设置信息提示,代码如下。 private void SetTip() { balloonTip1.SetBalloonCaption(txtUserName, "提示"); balloonTip1.SetBalloonText(txtUserName, "输入你的大名吧"); balloonTip1.SetBalloonCaption(txtUserPw, "提示"); balloonTip1.SetBalloonText(txtUserPw, "大名输完了就是你的密码咯"); } 看看程序运行效果吧

DotNetBar控件的多文档界面的实现

DotNetBar控件的多文档界面的实现 DotNetBar是一个不错的DotNET控件套装,原来是一个DLL文件,能够做出很漂亮的界面效果,记得在8.0以前的版本,好像实现多文档界面稍显得麻烦一些,我的Winform 框架、WCF框架虽然也提供了这样多文档的界面,不过都是曲线救国的方式实现。随着DotNetBar控件的逐步完善,版本一路飙升,文件也开始学DevExpress那样,使用多个文件进行拆分了。目前11.0版本以上,都有一个SuperTabControl的控件,实现多文档的界面已经很方便了。本文介绍利用SuperTabControl控件实现一个多文档界面的效果,供大家参考学习。 1、多文档界面的设计 下面是框架的一个基于DotNetBar控件的界面设计效果,按照Ribbon样式的方式进行组织,并把多文档界面放在中间,这样界面效果更加美观合理。 另外为了使得在Tab页面上可以关闭窗口,可以增加一个右键菜单,如下所示。 设置控件的相关属性,使得他的关闭按钮一直存在,并关联它的右键菜单即可,如下所示。

这个SuperTabControl,支持好几种Tab样式的,有些看起来非常不错,在其中选择自己喜欢的样式即可。 2、多文档界面的代码实现 在主界面中的Form_Load事件中,我们清空并初始化默认的Tab页面即可,如下所示。 private void MainForm_Load(object sender, EventArgs e) { Init(); //清空默认的Tab NavTabControl.Tabs.Clear(); tool_ItemDetail_Click(null, null); } private void tool_ItemDetail_Click(object sender, EventArgs e)

dotnetbar控件汉化

汉化DotNetBar中控件的系统文本 DotNetBar很多子控件的系统文本、提示信息等都是可以本地化的,可以转化为多种语言,控件提供DotNetBarManager.LocalizeString事件来进行每个控件的系统文本汉化。如果是想进行全局汉化所有DotNetBar控件,则可以使用LocalizationKeys.LocalizeString事件来进行汉化,如对MessageBoxEx控件进行汉化。 具体请看下面的代码: 全局汉化: [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); DevComponents.DotNetBar.LocalizationKeys.LocalizeString += new DevComponents.DotNetBar.DotNetBarManager.LocalizeStringEventHandler(L ocalizeString); Application.Run(new Form1()); } static void LocalizeString(object sender, DevComponents.DotNetBar.LocalizeEventArgs e) { if (e.Key == LocalizationKeys.MessageBoxYesButton)//汉化MessageBoxEx 控件中的Yes按钮 { e.LocalizedValue = "是"; e.Handled = true; } } 当然LocalizationKeys类,里面枚举了很多控件的系统文本,都可以一一进行汉化,具体操作就跟上面一样。 具体某个控件汉化,很多DotNetBar控件都提供了LocalizeString事件,可以在该事件里对该控件的系统文本进行汉化:如navigationPane中系统文本"show more buttons"的汉化: private void navigationPane1_LocalizeString(object sender, LocalizeEventArgs e) { if (e.Key == LocalizationKeys.NavBarShowMoreButtons) { e.LocalizedValue = "显示更多按钮";

相关文档
相关文档 最新文档