CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

ListView 里添加控件

楼主idda(碗掉了,头大个疤)2005-11-10 16:01:06 在 .NET技术 / C# 提问

在windows   Form中的listview可否添加checkbox,textbox之类的控件,如果能够的话怎么添加,如果不能的话,有否类似控件? 问题点数:50、回复次数:5Top

1 楼Kshatriya(何以解忧,惟有杜康)回复于 2005-11-10 16:08:13 得分 10

用DataGrid应该可以,不过麻烦点,很多第三方的控件也可以做到,Top

2 楼idda(碗掉了,头大个疤)回复于 2005-11-10 16:09:41 得分 0

Web   form的DataGrid   和DataList都可以,但是winForm的似乎不行啊?Top

3 楼hbxtlhx(平民百姓-自已动手,丰衣足食)回复于 2005-11-10 16:10:36 得分 40

没有太明白你的意思,不过我这里有一段代码,你可以看看是不是你的意思:  
  using   System;  
  using   System.Drawing;  
  using   System.Windows.Forms;  
   
  namespace   DTC  
  {  
  //msg=0x115   (WM_VSCROLL)    
  //msg=0x114   (WM_HSCROLL)  
  ///   <summary>  
  ///   CListView   的摘要说明。  
  ///   </summary>  
  public   class   CListView:ListView  
  {  
  private   TextBox   m_tb;  
   
  public   CListView()  
  {  
  m_tb=new   TextBox();  
  m_tb.Multiline=true;  
  m_tb.Visible=false;  
  this.GridLines=true;  
  this.CheckBoxes=true;  
  this.FullRowSelect=true;  
  this.Controls.Add(m_tb);  
  }  
  private   void   EditItem(int   Index)  
  {  
  if   (this.SelectedItems.Count<=0)  
  {  
  return;  
  }  
  ListViewItem   item   =   this.SelectedItems[0];  
  Rectangle   rect   =   item.Bounds;  
  Rectangle   _rect   =   new   Rectangle(rect.Right-this.Columns[Index].Width,rect.Top,this.Columns[Index].Width,rect.Height);  
  m_tb.Bounds=_rect;  
  m_tb.BringToFront();  
  m_tb.Text=item.SubItems[1].Text;  
  m_tb.Leave+=new   EventHandler(tb_Leave);  
  m_tb.TextChanged+=new   EventHandler(m_tb_TextChanged);  
  m_tb.Visible=true;  
  m_tb.Tag=item;  
  m_tb.Select();  
  }  
   
  protected   override   void   OnKeyDown(KeyEventArgs   e)  
  {  
  if   (e.KeyCode==Keys.F2)  
  {  
  EditItem(1);  
  }  
  base.OnKeyDown   (e);  
  }  
   
  protected   override   void   OnSelectedIndexChanged(EventArgs   e)  
  {  
  this.m_tb.Visible=false;  
  base.OnSelectedIndexChanged   (e);  
  }  
   
  protected   override   void   OnDoubleClick(EventArgs   e)  
  {  
  Point   tmpPoint=this.PointToClient(Cursor.Position);  
  ListViewItem   item   =   this.GetItemAt(tmpPoint.X,   tmpPoint.Y);  
  if   (item   !=   null)  
  {  
  if   (tmpPoint.X>this.Columns[0].Width   &&   tmpPoint.X<this.Width)  
  {  
  EditItem(1);  
  }  
  }  
   
  base.OnDoubleClick   (e);  
  }  
   
  protected   override   void   WndProc(ref   Message   m)  
  {  
  if   (m.Msg==0x115   ||   m.Msg   ==   0x114)  
  {  
  this.m_tb.Visible=false;  
  }  
  base.WndProc   (ref   m);  
  }  
   
  private   void   tb_Leave(object   sender,   EventArgs   e)  
  {  
  m_tb.TextChanged-=new   EventHandler(m_tb_TextChanged);  
  (sender   as   TextBox).Visible=false;  
  }  
   
  private   void   m_tb_TextChanged(object   sender,   EventArgs   e)  
  {  
  if   ((sender   as   TextBox).Tag   is   ListViewItem)  
  {  
  (this.m_tb.Tag   as   ListViewItem).SubItems[1].Text=this.m_tb.Text;  
  }  
  }  
  }  
  }  
  Top

4 楼idda(碗掉了,头大个疤)回复于 2005-11-10 18:02:21 得分 0

呵呵,谢谢,差不多,我可以自己写一个控件算了.Top

5 楼Amwpfiqvy(给我分吧,让我升仙)回复于 2005-11-12 18:49:53 得分 0

MarkTop

相关问题

  • listview控件如何添加数据?
  • datalist里动态添加控件
  • 本人在ListView里边自己添加控件,但是当旁边滚动条滚动时,控件位置不随之变化(急)
  • 如何控制listview控件添加不同颜色的信息?
  • 关于WindowsForm的ListView控件添加数据
  • 怎么用javasript把控件添加到System.Web.UI.WebControls.Panel控件里?
  • listview控件?
  • 简单问题,怎么样在listView控件中添加checkbox列!急
  • 如何在PANEL里设计时候添加控件并灵活定位控件?
  • 请问怎么建立控件数组,和在运行时向控件数组里添加控件

关键词

  • 控件
  • 添加
  • listview
  • clistview
  • tb
  • textbox
  • true
  • forms
  • using system

得分解答快速导航

  • 帖主:idda
  • Kshatriya
  • hbxtlhx

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo