VC++中 ListBox(列表框)的使用

合集下载

VC MFC列表框(CListBox)控件

VC MFC列表框(CListBox)控件

列表框控件简单应用重复性的过程我就不详细讲明了,只给出类里面函数的解释。

int CListBox::AddString( LPCTSTR lpszItem );//添加一个项,lpszItem是项文本内容int CListBox::InsertString( int nIndex, LPCTSTR lpszItem );//同上,只不过这个可以指定项位置(索引),由参数nIndex指定int CListBox::GetCurSel( ) const;//获取当前选中项的索引,函数返回索引值int CListBox::GetText( int nIndex,CString &rString ) const;//根据索引获得项文本int CListBox::GetCount( ) const;//获取项数量void CListBox::ResetContent( );//删除列表框所有的项int CListBox::DeleteString( UINT nIndex );//根据项索引从列表框删除一个项int CListBox::SetItemHeight( int nIndex, UINT cyItemHeight );//设置一个项的高度,注意:列表框具有//LBS_OWNERDRAWVARIABLE风格才可以单独设置一个项的高度,否则是所有项的高度自绘列表框这里自绘要达到的效果,就是简单模仿一下QQ界面里类似列表框控件的那种效果,先往对话框里添加列表框控件.然后再改一下列表框的属性,所有者绘制项选择固定,有字符串前面打上勾.接着准备两张位图,一张用于列表框的背景,一张用于项选中时的背景,ID号分别为:IDB_BK、IDB_SELECTED如下两张位图:再导入五张位图(QQ头像),ID号保持默认不变。

从CListBox派生出子类CNewListBox,往CNewListBox添加一个函数,用于画位图,函数如下:void CNewListBox::DrawBK(CDC *pDC, CRect rect, UINT uIDBK){CDC memDC;memDC.CreateCompatibleDC(pDC);//兼容DCCBitmap bmp;bmp.LoadBitmap(uIDBK);//加载位图BITMAP bmpInfo;bmp.GetBitmap(&bmpInfo);//获取位图信息memDC.SelectObject(&bmp);//选入位图pDC->StretchBlt(rect.left,rect.top,rect.Width(),rect.Height(),&memDC,0,0,bmpInfo.bmWidth,bmpInfo.bmHeight,SRCCOPY);bmp.DeleteObject();memDC.DeleteDC();}然后给CNewListBox添加WM_ERASEBKGND消息处理函数,这个消息是系统擦除背景时产生。

C#Listbox用法

C#Listbox用法

C# Listbox用法1. 属性列表:SelectionMode 组件中条目的选择类型,即多选(Multiple)、单选(Single) Rows 列表框中显示总共多少行Selected 检测条目是否被选中SelectedItem 返回的类型是ListItem,获得列表框中被选择的条目Count 列表框中条目的总数SelectedIndex 列表框中被选择项的索引值Items 泛指列表框中的所有项,每一项的类型都是ListItem2. 取列表框中被选中的值ListBox.SelectedValue3. 动态的添加列表框中的项:ListBox.Items.Add("所要添加的项");4. 移出指定项://首先判断列表框中的项是否大于0If(ListBox.Items.Count > 0 ){//移出选择的项ListBox.Items.Remove(ListBox.SelectedItem);}5. 清空所有项://首先判断列表框中的项是否大于0If(ListBox.Items.Count > 0 ){//清空所有项ListBox.Items.Clear();}6. 列表框可以一次选择多项:只需设置列表框的属性SelectionMode="Multiple",按Ctrl可以多选7. 两个列表框联动,即两级联动菜单//判断第一个列表框中被选中的值switch(ListBox1.SelectValue){//如果是"A",第二个列表框中就添加这些:case "A"ListBox2.Items.Clear();ListBox2.Items.Add("A1");ListBox2.Items.Add("A2");ListBox2.Items.Add("A3");//如果是"B",第二个列表框中就添加这些:case "B"ListBox2.Items.Clear();ListBox2.Items.Add("B1");ListBox2.Items.Add("B2");ListBox2.Items.Add("B3");}8. 实现列表框中项的移位即:向上移位、向下移位具体的思路为:创建一个ListBox对象,并把要移位的项先暂放在这个对象中。

(9)列表框(ListBox)

(9)列表框(ListBox)

(九)列表框(ListBox)为用户提供选项列表,可选一项或多项,但不能进行类似文本框的编辑修改。

项目数超出列表框显示的范围,会自动添加垂直滚动条(若是多列列表,可添加水平滚动条)。

无下拉按钮。

一、列表框的属性:1.Name属性:2.Text属性:(编程用)总是对应用户在运行时选定的列表项目的内容。

3.ListIndex属性:(编程用)(1)设置列表框中当前要选用的项目,相当于触发Click事件。

(2)返回列表框中当前选中项目的索引值:第一项为0,第二项为1……未选中为– 14.NewIndex属性:(编程用)始终定位在最后一个添加到列表中的项目的索引值。

5.List属性:(编程用)本属性包括项目全部组成的一个数组,以下标来区分每一个项目元素,引用格式为:<控件名>.List(<索引值>)6.ListCount属性:(编程用)返回列表框中项目的总数(最大索引值 + 1)。

7.Sorted属性:选True时,自动按字母顺序排序。

(缺省值为False)8.Selected(索引值)属性:(编程用)返回值为True时,表示索引值所指的项目被选中。

9.Style属性:0:表示只能单选(默认值)1:表示可选多项10.MultiSelect属性:0:表示只能单选1:可用鼠标单击方式选多项2:可用 <Ctrl> + 单击或 <Shift> + 单击的方式选多项二、列表框的事件和方法:1.Click事件:2.Dblchick事件:注:程序中常应考虑到双击某一项目的效果,应和单击该项目后再单击一命令按钮(如“确定”)的效果相同。

(方法是:将<命令按钮名>_Click 或 <命令按钮名>.Value=True 的语句放入双击列表的事件过程中。

)3.AddItem方法:(1)向列表中添加项目,引用格式为:<列表框名>.AddItem <项目字符串表达式> [,<索引值>](2)说明:①本方法通常用在Form_Load()事件的过程中。

c#listbox使用详解和常见问题解决

c#listbox使用详解和常见问题解决

常⽤属性说明Items 指列表中所有的条⽬集合,是⼀个数组集合。

可以通过该属性,对列表进⾏增添、移除或获取列表内容MultiColumn⽤来设置或获取⼀个值(bool 值),表⽰是否允许多列显⽰,true 表⽰多列,false 表⽰单列,默认为false 。

CoumnWidth ⽤来获取列表当前列的宽度或设置列表当前列的宽度SelectionMode 设置列表条⽬的选择⽅法。

SelectionMode.None 表⽰不允许选中SelectionMode.One 表⽰只允许⽤户选择⼀项SelectionMode.MultiExtended 表⽰允许选择多项,但选中的条⽬必定相连(相邻)SelectionMode.MultiSimple表⽰允许选择多项,可以任意选中多个条⽬。

如下图SelectedIndex *获取选中项的索引未选中任何项时,返回值为 1单选时,属性值即为选中项的索引多选时,表⽰第⼀项选定项的索引,亦可使⽤SelectedIndex[i]获取其它选中项索引,亦可让某项变成选中状态。

i 为选中项从0开始的序号。

SelectedIndeces⽤来获取选中项从0开始的索引的集合,⼀般只⽤于多项。

与SelectedIndex 相似,但SelectedIndeces 只有获取索引的能⼒。

SelectedItem 获取列表当前选中项。

注意,获取到的是列表选中项的⽂本内容,⽽SelectedIndex 和SelectedIndeces 获取的只是选中项索引(int)。

SelectedItems获取选中项的集合,使⽤SelectedItems[i]来获取选中项的⽂本内容,i 为选中项集合索引。

SelectedItems 和SelectedIndex 相似,但⼀个是获取⽂本字段,⼀个是获取索引。

c#listbox 使⽤详解和常见问题解决关于ListBoxListBox 是WinForm 中的 列表 控件,它提供了⼀个项⽬列表(⼀组数据项),⽤户可以选择⼀个或者多个条⽬,当列表项⽬过多时,ListBox 会⾃动添加滚动条,使⽤户可以滚动查阅所有选项。

列表框ListBox列表框用来列出许多项目供用户选择

列表框ListBox列表框用来列出许多项目供用户选择

若获取某列表项的文本串,可使用CListBox::GetText成员函数: 格式:void GetText(int nIndex,CString& rString); 功能:若获取某列表项的字符串。 参数: nIndex-列表项的索引。
rString-获取的字符串对象。 3.列表框的Notification消息 列表框可以向父窗口发六种Notification消息: • LBN_DBLCLK 鼠标 LBN_ERRSPACE 列表框无法分配内存时产生 • LBN_KILLFOCUS/LBN_SETFOCUS 在列表框失去/得到输入 焦点时产生 • LBN_SELCHANGE 列表框选择的项发生改变时产生 • LBN_SELCANCEL 取消当前列表框的选项时产生
2.列表框基本操作
在列表框被创建后,往往要添加、删除、改变或获取列表框中的 列表项,该操作可调用ClistBox类成员函数实现。
列表框的(列表)项可用字符串标识或用索引确定(索引表明某项 在列表框中的位置,它以0为基数,即:第一项索引为0,第二项 索引为1,。。。)。
(1)添加列表项
列表框创建时是一个空表,需要由用户添加或插入一些项。
返回:字符串在列表框中插入位置的索引。错误返回LB_ERR,空 间不足返回LB_ERRSPACE。 参数:
nIndex-指定插入字符串的索引(从0开始)。若为-1,则该串插入 到列表的尾部。
lpszItem-列表项的文本字符串。
CListBox::SetItemData成员函数: 格式:int SetItemData(int nIndex,DWORD dwItemData); 功能:设置与列表框中指定列表项相关的32位值。 返回:若出错,则返回LB_ERR。 参数: nIndex-列表项的索引 dwItemData-指定与列表项相关的32位值 CListBox::SetItemDataPtr成员函数: 格式:int SetItemDataPtr(int nIndex,void* pData); 功能:设置与列表框中指定列表项相关的指针。

listbox控件用法详解

listbox控件用法详解

listbox控件用法详解关于listbox控件的用法,下面将为大家一步一步详细解答。

一、什么是listbox控件Listbox控件是一种常用的用户界面元素,用于向用户展示一组选项,并允许用户从中选择一个或多个选项。

Listbox控件通常呈现为一个方框,在框中包含一个滚动条和一个列表,列表中的每一项称为一个列表项。

二、listbox控件的创建要创建一个listbox控件,我们需要使用相关的编程语言和GUI编程工具,例如在C#中可以使用Windows Forms或WPF,在HTML中可以使用JavaScript 或jQuery。

主要的创建步骤如下:1. 创建一个listbox控件的实例。

通常通过类的构造函数来实现,例如在C#中,可以使用ListBox类的构造函数来创建。

2. 设置listbox控件的属性。

例如,可以设置listbox控件的位置和大小、字体样式和颜色、滚动条的显示方式等。

3. 添加列表项。

通过调用listbox控件的方法,例如在C#中,可以使用Add方法向listbox控件中添加列表项。

4. 添加事件处理程序。

如果需要在用户选择某个列表项时执行相应的操作,可以添加事件处理程序。

例如,在C#中,可以使用SelectedIndexChanged事件,当用户选择了不同的列表项时触发。

三、listbox控件的常见属性和方法1. 属性:- Location:获取或设置控件的位置。

- Size:获取或设置控件的大小。

- Font:获取或设置控件的字体。

- ForeColor:获取或设置控件的前景色。

- Items:获取listbox控件中的所有列表项。

- SelectedItems:获取listbox控件中被选中的列表项。

- MultiSelect:获取或设置是否允许多选。

- SelectedIndex:获取或设置当前选中的列表项的索引。

- ScrollAlwaysVisible:获取或设置是否始终显示滚动条。

C#listbox的用法

C#listbox的用法

C#listbox的⽤法C# listbox 的⽤法(2012-12-2 10:44:33)1. 属性列表:SelectionMode组件中条⽬的选择类型:None-根本不允许任何选择;One-默认值,只选择单个选项;MultiSimple-简单的多项选择,单击⼀次⿏标就选中或取消选中列表中的⼀项;MultiExtended-扩展的多项选择,类似windows中的选择操作.SelectedItem在单选的列表框⾥, SelectedItem返回的是⼀个对象,它的⽂本由Text属性表⽰.作⽤是获得列表框中被选择的条⽬.如果控件允许多项选择,被选中的条⽬就以SelectedItems属性表⽰,它是Item对象的⼀个集合.Count列表框中条⽬的总数SelectedIndex /SelectedIndices/SelectedItem/SelectedItemsListBox.SelectedIndex属性获取单项选择ListBox中当前选定项的位置;ListBox.SelectedIndices属性获取⼀个集合,该集合包含ListBox中所有当前选定项的从零开始的索引;ListBox.SelectedItem属性获取ListBox中当前选定的项;ListBox.SelectedItems属性获取多重选择ListBox中所有选定的项,它是⼀集合。

Public ReadOnly Property SelectedIndices As ListBox.SelectedIndexCollectionListBox.SelectedIndexCollection,包含控件中当前选定项的索引。

如果当前没有选定的项,则返回空 ListBox.SelectedIndexCollection泛指列表框中的所有项2. 取列表框中被选中的值ListBox.SelectedValue3. 动态的添加列表框中的项:ListBox.Items.Add("所要添加的项");以下代码实现通过输⼊框向列表框中添加内容:Private Sub bttnAdd1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bttnAdd1.ClickDim ListItem As StringListItem = InputBox("Enter new item's name")If ListItem.Trim <> "" ThensourceList.Items.Add(ListItem)End IfEnd SubListBox.Items.Insert(index,item)item是要添加到列表的对象,index是这个新项的索引。

VC++----ListBox控件的使用

VC++----ListBox控件的使用

VC++----ListBox控件的使⽤ListBox控件的使⽤ ListBox窗户⽤来列出⼀系列的⽂本,每条则本占⼀⾏。

创建⼀个列表窗户可使⽤成员函数: BOOL CListBox::Create( LPCTSTR lpszText, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID = 0xffff ); 其中dwStyle将指明该窗户的风格,除了⼦窗户常⽤的风格WS_CHILD,WS_VISIBLE外,你可以针对列表控件指明专门的风格。

LBS_MULTIPLESEL 指明列表框可以同时选择多⾏ LBS_EXTENDEDSEL 可以路程经过过程按下Shift/Ctrl键选择多⾏ LBS_SORT 所有的⾏根据字母挨次进⾏排序 在列表框天⽣后需要向其中插⼿或是删除⾏,可以利⽤: int AddString( LPCTSTR lpszItem )新增⾏, int DeleteString( UINT nIndex )删除指定⾏, int InsertString( int nIndex, LPCTSTR lpszItem )将⾏插⼊到指定位置。

void ResetContent( )可以删除列表框中所有⾏。

路程经过过程调⽤int GetCount( )获患上时下列表框中⾏的数量。

要是需要获患上/设置时下被选中的⾏,可以调⽤int GetCurSel( )/int SetCurSel(int iIndex)。

要是你指明了选择多⾏的风格,你就需要先调⽤int GetSelCount( )获患上被选中的⾏的数量,之后int GetSelItems( int nMaxItems, LPINT rgIndex )获患上所有选中的⾏,参量rgIndex为储存安放被选中⾏的数组。

路程经过过程调⽤int GetLBText( int nIndex, LPTSTR lpszText )获患上列表框内指定⾏的字符串。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

VC++ ListBox(列表框)的使用
文档制作:@柳絮飘诗
ListBox的操作比较简单
1添加数据
声明控件变量的类别为Control,变量类型为CListBox,变量名为m_ListBox_Content.
m_ListBox_Content.AddString(_T("123"));
m_ListBox_Content.AddString(_T("汉字"));
m_ListBox_Content.AddString(_T("English"));
m_ListBox_Content.AddString(_T("!@#$%^&*()"));
2获取数据
CString s;
m_ListBox_Content.GetText(1,s);
MessageBox(s,_T("取得第2行数据"),MB_OK);
s.ReleaseBuffer();
将会得到"汉字"这个字符串,如果没有得到"汉字"这个字符串,是因为ListBox的Sort属性设为True了.设为False之后就按照你编写顺序写入(原来是这样 之前都没注意过)
3获取选择的数据
首先要将ListBox的Selection属性设置为Multiple;
int nSel;
nSel=m_ListBox_Content.GetCurSel();
CString s;
m_ListBox_Content.GetText(nSel,s);
MessageBox(s,_T("您选择的是"),MB_OK);
s.ReleaseBuffer();
4获取选择ListBox项的多个数据
首先要将ListBox的Selection的属性设置为Multiple
int nSel = m_ListBox_Content.GetSelCount();
CArray< int,int& > arrayListSel;
arrayListSel.SetSize(nSel);
m_ListBox_Content.GetSelItems(nSel,arrayListSel.GetData());
CString s = _T("");
for( int i=0; i< nSel; i++ )
{
m_ListBox_Content.GetText( arrayListSel[i], s);
MessageBox(s,_T("您选择的是"),MB_OK);
}
5双击删除所选项
添加一个ListBox的双击事件
m_ListBox_Content.DeleteString(m_ListBox_Content.GetCurSel());
//例子:
CListBox *List;
List=(CListBox*)GetDlgItem(IDC_LIST1);
List -> AddString("AAA");
List -> SetCurSel(0);。

相关文档
最新文档