1、用下面的方法就可以privatevoidform1_load(objectsender,eventargse){listviewview=view.detailslistviewfullrowselect=true}privatevoidlistview1_mousemove(objectsender,mouseeventargse){booliscontains=falsefor(inti=0i 1、用下面的方法就可以privatevoidform1_load(objectsender,eventargse){listviewview=view.detailslistviewfullrowselect=true}privatevoidlistview1_mousemove(objectsender,mouseeventargse){booliscontains=falsefor(inti=0i 1、imagelist先加入1些图片数据库表中有个字段保存图片在ImagelISt的索引位置3,LISTVIEW加载数据的时候绑定图片用ImageList的索引查看更多答案>>。 1、你要在你的对话框类里用你从网上看到的这个类声明一个列表控件变量,在对话框资源中添加一个列表控件(是ListCtr不是列表框ListBox)子类化列表控件到你的列表控件变量,4之后你就可以通过列列表控件变量操作列表控件了。 1、用ListView显示电话本中的信息并处理鼠标滚动及点击事件。程序运行前可以查看电话本中的数据,程序运行之后,滚动鼠标中键,触发setOnItemSelectedListener事件的处理。后点击ListView列表中的一项来触发setOnItemClickListener事件。。 2、编码逻辑先创LinearLayout对象和ListView对象,LinearLayout用来显示ListView。然后通过ListAdapter将获得的电话本数据与ListView链接起来。接着将ListAdapter添加到ListView中。后将ListView添加到LinearLayout中,让屏幕显示LinearLayout。要处理ListView事件,需要为ListView视图添加setOnItemSelectedListener监听以及setOnItemClickListener监听。。 3、实例源码publicclassActivity01extendsActivity{LinearLayoutm_LinearLayout;ListViewm_ListView; /**Calledwhentheactivityisfirstcreated.*/@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState); /*创建LinearLayout布局对象*/m_LinearLayout=newLinearLayout(this);/*设置布局LinearLayout的属性*/m_LinearLayout.setOrientation(LinearLayout.VERTICAL);m_LinearLayout.setBackgroundColor(android.graphics.Color.BLACK); /*创建ListView对象*/m_ListView=newListView(this);LinearLayout.LayoutParamsparam=newLinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT);m_ListView.setBackgroundColor(Color.BLACK); /*添加m_ListView到m_LinearLayout布局*/m_LinearLayout.addView(m_ListView,param); /*设置显示m_LinearLayout布局*/setContentView(m_LinearLayout); //获取数据库Phones的CursorCursorcur=getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,null,null,null,null);startManagingCursor(cur); //ListAdapter是ListView和后台数据的桥梁ListAdapteradapter=newSimpleCursorAdapter(this,//定义List中每一行的显示模板//表示每一行包含两个数据项android.R.layout.simple_list_item_2,//数据库的Cursor对象cur,//从数据库的NAME和NUMBER两列中取数据newString[]{PhoneLookup.DISPLAY_NAME,PhoneLookup.NUMBER},//与NAME和NUMBER对应的Viewsnewint[]{android.R.id.text1,android.R.id.text2}); /*将adapter添加到m_ListView中*/m_ListView.setAdapter(adapter); /*为m_ListView视图添加setOnItemSelectedListener监听*/m_ListView.setOnItemSelectedListener(newAdapterView.OnItemSelectedListener(){ @OverridepublicvoidonItemSelected(AdapterViewarg0,Viewarg1,intarg2,longarg3){ DisplayToast("滚动到第"+Long.toString(arg0.getSelectedItemId())+"项");} @OverridepublicvoidonNothingSelected(AdapterViewarg0){//没有选中}}); /*为m_ListView视图添加setOnItemClickListener监听*/m_ListView.setOnItemClickListener(newAdapterView.OnItemClickListener(){ @OverridepublicvoidonItemClick(AdapterViewarg0,Viewarg1,intarg2,longarg3){//于对选中的项进行处理DisplayToast("选中了第"+Integer.toString(arg2+1)+"项");} }); } /*显示Toast*/publicvoidDisplayToast(Stringstr){Toast.makeText(this,str,Toast.LENGTH_SHORT).show();}} 。 1、设置基础属性。。 2、声明Listview。 3、声明分页控件。。 4、声明按钮组。。 5、声明数据信息。。 6、声明数据来源。。 7、运行程序。。 1、PathFileName=OpenDialog1->FileNameEdit1->Text=ExtractFileName(PathFileName)Edit2->Text=PathFileNameTIcon*IconWORDIconIndexIcon=newTIcon//问题出在这一步绝慎,你没有为Icon申请一并逗敬个地址。 2、记得要释放Icon->Handle=ExtractAssociatedIcon(Application->Handle,PathFileName.c_str(),&IconIndex)ListView1->LargeImages->AddIcon(Icon)//另外,ListView1的指孙LargeImage属性要确实连接得有TImageList控件,否则也没有空间装载AddIcon()函数也会失败。 1、ListView我认为是种数据型的控件,以装载和展示数据为目的,当然也能展示图片,这个功能没有试过。 2、这里讲一下ListView的第一次使用后的一些小结。 3、 ListView一些设置与添加字段。 4、Lv1=newListView()//实例化 LvGridLines=truefile、//显示各个记录的分隔线 LvFullRowSelect=truefile、//要选择就是一行 LvView=View.Detailsfile、//定义列表显示的方式 LvScrollable=truefile、//需要时候显示滚动条 LvMultiSelect=false//不可以多行选择 listViewItems.Remove(listViewSelectedItems(0))//这样可以在ListView中删除选择的行 LvHeaderStyle=ColumnHeaderStyle.Nonclickable//针对数据库的字段名称,建立与之适应显示表头 设置列名称、LvColumns.Add("A",60,HorizontalAlignment.Right) LvColumns.Add("B",100,HorizontalAlignment.Left) LvColumns.Add("C",100,HorizontalAlignment.Left) LvVisible=true 用循环把数据插入进ListView,用reader方法读取中括号中的字段名。 5、lvItems.Clear()//清空lv1中的记录 ListViewItemli=newListViewItem() li.SubItems.Clear()//清空每行数据的每一列数据。 6、foreach(DataRowreaderinstu.Rows)//前提是stu有数据,stu是DataTable { ListViewItemitem=newListViewItem((reader("EMP_NO")).ToString()) item.SubItems.Add(reader("NAME").ToString()) item.SubItems.Add(reader("ID").ToString()) this.lvItems.Add(item) } 接下来说说Listview中的一些小技巧。 7、鼠标选中一行记录,如何读取那行记录中的某列记录?? 很简单用这句话、lvSelectedItems(0).SubItems(0).Text SelectedItems(0)指的是你选中的行,如果你选中的是多行,那么第一行中括号里就是0,第二行就是以此类推。 8、SubItems(0)指的是你选中的列,第一列中括号里就是0,第二行就是以此类推。 9、 Listview中双击记录事件。 10、在.cs文件里写、privatevoidlv1_DoubleClick(objectsender,EventArgse)//双击listview { //这里写你想要产生的事件。 11、例如、MessageBox.Show("OK") } 在.Designer.cs文件里找到相关的控件代码写入如下信息、this.lvDoubleClick+=newSystem.EventHandler(this.lv1_DoubleClick) 例如、//lv1 // this.lvLocation=newSystem.Drawing.Point(-3,98) this.lvName="lv1" this.lvSize=newSystem.Drawing.Size(1018,527) this.lvTabIndex=28 this.lvUseCompatibleStateImageBehavior=false this.lvView=System.Windows.Forms.View.Details this.lvDoubleClick+=newSystem.EventHandler(this.lv1_DoubleClick) Listview隐藏列 有时候用Listview会遇到这样的麻烦。 12、众所周知主键是区分每条不同记录可靠的方法,一旦主键不显示在Listview中,那选中Listview某一行也就意味着在这一行中取不到这条记录的主键,只能取到其他显示的字段,那如何把这条记录传递给其他窗口呢?用其他字段?如果是这样的话就风险太大了,因为其他字段会有重复的可能,这样的程序就会出现BUG。 13、这时候就该发挥隐藏列的作用了,隐藏列方便使用,其作用是在前台页面看不出有那条主键的字段,但是在代码控制中却包含了这个字段,我们点击某一条记录时就能方便的获取这条记录的主键字段,这样只要把这字段字符传到其他窗体就没问题了,因为主键字段是且不能为空的。 14、下面说说具体实现方法。 15、LvColumns.Add("A",60,HorizontalAlignment.Right) LvColumns.Add("B",100,HorizontalAlignment.Left) LvColumns.Add("C",100,HorizontalAlignment.Left) LvVisible=true foreach(DataRowreaderinstu.Rows)//前提是stu有数据,stu是DataTable { ListViewItemitem=newListViewItem((reader("EMP_NO")).ToString()) item.SubItems.Add(reader("NAME").ToString()) item.SubItems.Add(reader("ID").ToString()) item.SubItems.Add(reader("PrimaryKey").ToString()) this.lvItems.Add(item) } 红色的是列的标题,白色的是循环输出每一行数据,这样可以很明显的看出,只有3列,却插入了4列的数据,而后一列就是主键,而显示是也只有3列,那有人会问了,既然第四列没有显示,如何去第四列的数据呢? 也是同样的代码、lvSelectedItems(0).SubItemsText 这个3显示的就是第四列的数据,因为计算机是从0开始计数的,很简单吧! namespaceListViewExercise { publicpartialclassFormForm { publicForm1() { InitializeComponent() ListViewSet() CreateViewItemMethodOne() //CreateViewItemMethodTow() } ///ListView设置 privatevoidListViewSet() { //ListView显示方式 listViewControl.View=View.Details } /////手动填加ListView方法1 privatevoidCreateViewItemMethodOne() { listViewControl.BeginUpdate() #region增加Item的标题,共有三个列 //创建标题 listViewControl.Columns.Add("文件名") listViewControl.Columns.Add("大小") listViewControl.Columns.Add("创建日期") #endregion #region手动填加ListView方法 //增加第一个Item,在View.Details模式下,有点像第一列中一个值 listViewControl.Items.Add("folder1","文件夹1",0) //增加第一个Item的第一个SubItem,在View.Details模式下,有点像第一列中一个值 listViewControl.Items("folder1").SubItems.Add("11") //增加第一个Item的第二个SubItem,在View.Details模式下,有点像第一列中一个值 listViewControl.Items("folder1").SubItems.Add("20080114") listViewControl.Items.Add("folder2","文件夹2",0) listViewControl.Items("folder2").SubItems.Add("21") listViewControl.Items("folder2").SubItems.Add("20080115") listViewControl.Items.Add("文件夹3") listViewControl.Items.Add("文件夹4") #endregion listViewControl.EndUpdate() } ///手动填加ListView方法2 privatevoidCreateViewItemMethodTow() { #region增加Item的标题,共有三个列 //创建标题,共三列 listViewControl.Columns.Add("文件名") listViewControl.Columns.Add("大小") listViewControl.Columns.Add("创建日期") #endregion listViewControl.BeginUpdate() #region增加第一个Item //定义一个ListViewItem,在View.Details模式下,有点像第一列中一个值 ListViewItemlvItem //定义ListViewSubItem,在View.Details模式下,有点像第二列中一个值 ListViewItem.ListViewSubItemlvSubItem //实列化一个Item,在View.Details模式下,有点像加第一行的第一个值 lvItem=newListViewItem() //Item的显示的文字 lvItem.Text="文件夹1" //Item增加到ListView控件中,即增加第一行。 16、在View.Details模式下,有点像增加了第一个项目的第一列的第一个值 listViewControl.Items.Add(lvItem) //实例化SubItem lvSubItem=newListViewItem.ListViewSubItem() lvSubItem.Text="10" //将SubItem增加到第一个Item中,在View.Details模式下,有点像增加了第一个项目的第二列的第一个值 lvItem.SubItems.Add(lvSubItem) lvSubItem=newListViewItem.ListViewSubItem() lvSubItem.Text="20080114" //将SubItem增加到第一个Item中,在View.Details模式下,有点像增加了第一个项目的第三列的第一个值 lvItem.SubItems.Add(lvSubItem) #endregion #region增加第二个Item lvItem=newListViewItem() lvItem.Text="文件夹2" lvSubItem=newListViewItem.ListViewSubItem() lvSubItem.Text="20" lvItem.SubItems.Add(lvSubItem) lvSubItem=newListViewItem.ListViewSubItem() lvSubItem.Text="20080115" lvItem.SubItems.Add(lvSubItem) listViewControl.Items.Add(lvItem) #endregion listViewControl.EndUpdate() } //第三种自己的方法,挺有效的,简单的 privatevoidCreateViewItems() { listViewBeginUpdate() listViewColumns.Add("矩阵控制命令") listViewColumns.Add("功能描述") listViewColumns(0).Width=145 listViewColumnsWidth=515 listViewItems.Add("/%Lock") listViewItems(0).SubItems.Add("锁定键盘") listViewItems.Add("/%Unlock") listViewItemsSubItems.Add("解开键盘的锁定") listViewItems.Add("/Version") listViewItemsSubItems.Add("查询软件版本") listViewItems.Add("/、BellOff") listViewItemsSubItems.Add("关闭蜂鸣器") listViewEndUpdate() } } }。 1、ListView我认为是种数据型的控件,以装载和展示数据为目的,当然也能展示图片,这个功能没有试过。
【listview控件】怎样使用C的listview控件
一、如何用鼠标拖动选中listview的多行c