关键点

 
在列表框生成后需要向其中加入或是删除行,可以利用:
int AddString( LPCTSTR lpszItem )添加行,
int DeleteString( UINT nIndex )删除指定行,
int InsertString( int nIndex, LPCTSTR lpszItem )将行插入到指定位置。
void ResetContent( )可以删除列表框中所有行。
通过调用int GetCount( )得到当前列表框中行的数量。
 
 
 

实现过程

属性设置
Sort:False
Selection:Multiple
 
//初始化部分代码
    //GetDlgItem(IDC_EDIT1)->SetFocus();//如果无效果,将edit的 ID Index(Ctrl+D)设置为1
//向列表框中插入文本,手动将默认的排序功能去掉sort
    m_ctrl_listbox1.AddString("A");
    m_ctrl_listbox1.AddString("BB");
    m_ctrl_listbox1.AddString("CCC");
    m_ctrl_listbox1.AddString("DDDD");
 
 
void CProject03Dlg::OnButton1()
{
    // TODO: Add your control notification handler code here
 
    //添加字符串到列表框1
    CString str;
    m_ctrl_edt1.GetWindowText(str);
    //添加的字符串不能为空
    UpdateData(FALSE);
 
    //如果nStartAfter为-1,从头查找整个列表框
//这里C++把a和A当成一样的字符了,如何让它区别大小写呢
    int nIndex =m_ctrl_listbox1.FindStringExact(-1,str);
    if ( nIndex != -1 )
    {
        MessageBox("项目已存在!");
        return;//Do Nothing
    }
 
    if ( !str.IsEmpty() )
    {
        //去掉最左端和最右端的空格
        str.TrimLeft();
        str.TrimRight();
        m_ctrl_listbox1.AddString(str);
        m_ctrl_edt1.SetWindowText("");
        m_ctrl_edt1.SetFocus();
    }
    else
    {
        MessageBox("字符不能为空!");
    }
}
 
 
 
void CProject03Dlg::OnButton2()
{
    //添加选中的项
 
    CString str;
    for (int i=0; i<m_ctrl_listbox1.GetCount(); i++)
    {
        if (m_ctrl_listbox1.GetSel(i))
        {
            m_ctrl_listbox1.GetText(i, str);           
            m_ctrl_listbox2.AddString(str);           
        // m_ctrl_listbox1.DeleteString(i);//添加并删除,最后一个没删除掉
        }
    }   
}    
 
void CProject03Dlg::OnButton3()
{
    //删除选中的项目
    for (int i=m_ctrl_listbox1.GetCount()-1; i>-1; i--)
    {
        if (m_ctrl_listbox1.GetSel(i))
        {
            m_ctrl_listbox1.DeleteString(i);
        }
    }   
}
 
void CProject03Dlg::OnButton5()
{
 
    //全部添加并清空已有的部分
    CString str;
    for (int i=0; i<m_ctrl_listbox1.GetCount(); i++)
    {
            m_ctrl_listbox1.GetText(i, str);           
            m_ctrl_listbox2.AddString(str);       
    }   
    m_ctrl_listbox1.ResetContent();   
}
 

备注

相关链接

 

附件列表

ListBox基础的更多相关文章

  1. 关于WPF你应该知道的2000件事

    原文 关于WPF你应该知道的2000件事 以下列出了迄今为止为WPF博客所知的2,000件事所创建的所有帖子. 帖子总数= 1,201 动画 #7 - 基于属性的动画 #686 - 使用动画制作图像脉 ...

  2. SilverLight:基础控件使用(2)-ComboBox,ListBox控件

    ylbtech-SilverLight-Basic-Control:基础控件使用(2)-ComboBox,ListBox控件 直接在 XAML 代码中设置 Items 和通过后台代码绑定数据源 Com ...

  3. C# 两个ListBox 数据互传-基础操作

    先看效果图: 两个服务设施列,左边:lbFacility1,右边:lbFacility2,中间向左向右箭头. 如果只是单纯的向左向右移动,那很简单. 因为项目遇到要获取选中项的ID,通过给ListBo ...

  4. Python3 tkinter基础 Listbox height 显示行数的上限

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  5. Python3 tkinter基础 Listbox Scrollbar 创建垂直滚动条

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  6. Python3 tkinter基础 Listbox delete 删除单个、所有元素

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  7. Python3 tkinter基础 Listbox for+insert 将list中元素导入listbox中

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  8. Python3 tkinter基础 Listbox Button 点击按钮删除选中的单个元素

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  9. 2000条你应知的WPF小姿势 基础篇<22-27 WPF生命周期, 基础类等>

    端午长假在家陪着女朋友, 幸福感满满,生活对于一只饱经忧患的程序猿来说也是非常重要的,也就暂时没有更新博客.休假结束,回归奋斗的日子了,开始继续更新WPF系列. 在正文开始之前需要介绍一个人:Sean ...

随机推荐

  1. tortoisesvn的安装与使用

    1.下载安装文件,我用的是1.6.同时可以下载一个中文的安装包. 2.我在F盘建立了一个文件夹tortoisesvn,专门用来放置版本目录文件.然后右键这个文件夹,选择tortoisesvn-> ...

  2. char和QChar(Unicode的编码与内存里的值还不是一回事)

    char类型是c/c++中内置的类型,描述了1个字节的内存信息的解析.比如: char gemfield=’g’; 那么在由gemfield标记的这块内存的大小就是1个字节,信息就是01100111, ...

  3. 点点滴滴-ConfigurationManager.AppSettings

    在写程序的配置文件,里面添加了几个配置,下面是appSettings节点的设置 <appSettings> <add key="StyleFolder" valu ...

  4. (转载)NET流操作

    http://www.oseye.net/user/kevin/blog/86 概念 数据流(Stream)是对串行传输数据的一种抽象表示,是对输入/输出的一种抽象.数据有来源和目的地,衔接两者的就是 ...

  5. stream_iterator、ostream_iterator 使用初探

    STL定义了供输入及输出的iostream iterator类,称为 istream_iterator和ostream_iterator,分别支持单一型别的元素的读取和写入. 使用方法: 1.包含头文 ...

  6. 正则 ?<= 和 ?= 用法

    参考网址:http://baike.baidu.com/link?url=2zORJF9GOjU8AkmuHDLz9cyl9yiL68PdW3frayzLwWQhDvDEM51V_CcY_g1mZ7O ...

  7. Java实现查看当前目录下的文件

    package com.tfj.file; import java.io.File; import java.util.ArrayList; /** * @author JackSile E-mail ...

  8. dtree的使用

      第一步:到官网下载下载dtree的相关包. 第二步:导入相关包 <link rel="StyleSheet" href="${ctx}/dtree/dtree. ...

  9. java类转化为json对象

    方式一:使用jar包,直接转化成json格式,再使用outwrite写到jsp中 先说说要使用到的包commons-beanutils.jar.commons-collections.jar.comm ...

  10. 【HtmlParser】HtmlParser使用

    转载 http://www.cnblogs.com/549294286/archive/2012/09/04/2670601.html HTMLParser的核心模块是org.htmlparser.P ...