关键点

 
在列表框生成后需要向其中加入或是删除行,可以利用:
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. android 点滴记录 ICCID IMSI IMEI MEID 关系 和 区别,相关参数在什么情况下可以获取...

    1:ICCID:Integrate circuit card identity 集成电路卡识别码(固化在手机SIM卡中) ICCID为IC卡的唯一识别号码,共有20位数字组成,其编码格式为:XXXXX ...

  2. Java程序发展之路

  3. [转] Manacher算法详解

    转载自: http://blog.csdn.net/dyx404514/article/details/42061017 Manacher算法 算法总结第三弹 manacher算法,前面讲了两个字符串 ...

  4. 设置oracle11g空表exp导出

    1.Oracle11g默认对空表不分配segment,故使用exp导出Oracle11g数据库时,空表不会导出. 2.设置deferred_segment_creation 参数为FALSE后,无论是 ...

  5. Ubuntu Broadcom无线网卡驱动安装

    刚装的Ubuntu,发现Broadcom无线网卡没工作, 原来手贱,在liveCD 把wireless禁用了,  ubuntu所以认为你机器,没有wireless模块,所以就没有安装wireless驱 ...

  6. How to get FlowLayoutPanel.AutoSize to work with FlowBreak

    have a problem with a FlowLayoutPanel and I don't know how to solve it. I'm placing two FlowLayoutPa ...

  7. SQL SERVER 2008查询其他数据库

    1.访问本地的其他数据库 --启用Ad Hoc Distributed Queries-- reconfigure reconfigure -- 使用完成后,关闭Ad Hoc Distributed ...

  8. 【原】Spark on YARN

    在YARN上运行Spark 在Spark0.6.0版本开始支持YARN模式,随后的版本在逐渐地完善. 在YARN上启动Spark 确保HADOOP_CONF_DIR或YARN_CONF_DIR属性的值 ...

  9. Html笔记(八)其他标签

    <pre></pre> :此标签内封装的文本数据格式将保持原样,包括空格和缩进等格式.常用于页面中显示带有缩进层次的代码. <p></p> :段落标签, ...

  10. 关于Windows Azure的常见问题-一般问题FAQ

    一般问题 什么是Windows Azure? Windows Azure 是一个灵活而开放的云平台,通过该平台,您可以在数据中心快速生成.部署和管理应用程序.Windows Azure 支持所有主流操 ...