VC++中 ListBox(列表框)的使用
- 格式:pdf
- 大小:118.09 KB
- 文档页数:1
列表框控件简单应用重复性的过程我就不详细讲明了,只给出类里面函数的解释。
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用法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对象,并把要移位的项先暂放在这个对象中。
(九)列表框(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()事件的过程中。
常⽤属性说明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控件的用法,下面将为大家一步一步详细解答。
一、什么是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 的⽤法(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控件的使⽤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 )获患上列表框内指定⾏的字符串。
vc list box 多选用法
在VC++中,ListBox是一种常用的控件,它允许用户从一个项目列表中选择一个或多个项目。
要实现ListBox的多选功能,可以按照以下步骤进行操作:
1. 设置ListBox的样式:
在设计界面或者代码中,设置ListBox的样式为
LBS_EXTENDEDSEL或者LBS_MULTIPLESEL。
LBS_EXTENDEDSEL样式允许用户通过鼠标拖动或者使用Shift键进行连续选择,
LBS_MULTIPLESEL样式允许用户通过Ctrl键进行不连续选择。
2. 处理选择事件:
当用户进行选择操作时,可以通过处理ListBox的消息来获取用户选择的项目。
可以使用LB_GETSELITEMS消息来获取用户选择的项目索引,然后进一步处理选择的项目。
3. 处理其他相关消息:
在多选的情况下,还可以处理LB_SELITEMRANGE消息来获取
用户选择的项目范围,以及LB_SETSEL消息来设置ListBox中的项
目选择状态。
4. 更新数据:
根据用户的选择,可以相应地更新数据或者执行其他操作。
可以在ListBox选择改变时触发相应的事件或者调用相应的函数来
处理选择的项目。
总之,要实现ListBox的多选功能,需要设置ListBox的样式,处理选择事件,处理其他相关消息以及更新数据。
通过这些步骤,
就可以实现ListBox的多选用法。
希望这些信息能够帮助到你。
VC ListBox的用法列表控件可以看作是功能增强的L i s t B o x,它提供了四种风格,而且可以同时显示一列的多中属性值。
M F C中使用C L i s t C t r l类来封装列表控件的各种操作。
通过调用B O O L C r e a t e( D W o r d d w S t y l e, c o n s t R E C T& r e c t, C W n d* p P a r e n t W n d, U I N T n I D );创建一个窗口,d w S t y l e中可以使用以下一些列表控件的专用风格:L V S_I C O N L V S_S M A L L I C O N L V S_L I S T L V S_R E P O R T这四种风格决定控件的外观,同时只可以选择其中一种,分别对应:大图标显示,小图标显示,列表显示,详细报表显示L V S_E D I T L A B E L S结点的显示字符可以被编辑,对于报表风格来讲可编辑的只为第一列。
L V S_S H O W S E L A L W A Y S在失去焦点时也显示当前选中的结点L V S_S I N G L E S E L同时只能选中列表中一项首先你需要设置列表控件所使用的I m a g e L i s t,如果你使用大图标显示风格,你就需要以如下形式调用:C I m a g e L i s t*S e t I m a g e L i s t(C I m a g e L i s t*p I m a g e L i s t,L V S I L_N O R M A L);如果使用其它三种风格显示而不想显示图标你可以不进行任何设置,否则需要以如下形式调用:C I m a g e L i s t*S e t I m a g e L i s t(C I m a g e L i s t*p I m a g e L i s t,L V S I L_S M A L L);通过调用i n t I n s e r t I t e m(i n t n I t e m,L P C T S T R l p s z I t e m);可以在列表控件中n I t e m指明位置插入一项,l p s z I t e m为显示字符。
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);。