社区
C#
帖子详情
ListView 里添加控件
idda
2005-11-10 04:01:06
在windows Form中的listview可否添加checkbox,textbox之类的控件,如果能够的话怎么添加,如果不能的话,有否类似控件?
...全文
498
5
打赏
收藏
ListView 里添加控件
在windows Form中的listview可否添加checkbox,textbox之类的控件,如果能够的话怎么添加,如果不能的话,有否类似控件?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Apq001
2005-11-12
打赏
举报
回复
Mark
idda
2005-11-10
打赏
举报
回复
呵呵,谢谢,差不多,我可以自己写一个控件算了.
北京的雾霾天
2005-11-10
打赏
举报
回复
没有太明白你的意思,不过我这里有一段代码,你可以看看是不是你的意思:
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;
}
}
}
}
idda
2005-11-10
打赏
举报
回复
Web form的DataGrid 和DataList都可以,但是winForm的似乎不行啊?
Kshatriya
2005-11-10
打赏
举报
回复
用DataGrid应该可以,不过麻烦点,很多第三方的控件也可以做到,
C#
ListView
中
添加
多种自定义
控件
源码
C#的
ListView
添加
各种自定义
控件
,CheckBox,ComboBox等
C#
ListView
中
添加
ComboBox等
控件
C#
ListView
中
添加
ComboBox等
控件
效果见 http://blog.csdn.net/xuegacl/article/details/49795479
Android核心组件
ListView
详解
在Android所有常用的原生
控件
当中,用法最复杂的应该就是
ListView
了,它专门用于处理那种内容元素很多,手机屏幕无法展示出所有内容的情况。
ListView
可以使用列表的形式来展示内容,超出屏幕部分的...
ListView
中动态
添加
控件
在
ListView
中,动态
添加
一段文字,不刷新界面
C#
110,538
社区成员
642,577
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章