原文:C# 双击ListView出现编辑框可编辑,回车确认

//获取鼠标点击的项------API
[DllImport("user32")]
public static extern int GetScrollPos(int hwnd, int nBar); private TextBox txtInput; //获取点击项的位置
private void lViewPersonWork_MouseDoubleClick(object sender, MouseEventArgs e)
{
try
{
ListViewItem item = this.lViewPersonWork.GetItemAt(e.X, e.Y); //找到文本框
Rectangle rect = item.GetBounds(ItemBoundsPortion.Entire);
int StartX = rect.Left; //获取文本框位置的X坐标
int ColumnIndex = 0; //文本框的索引 //获取列的索引
//得到滑块的位置
int pos = GetScrollPos(this.lViewPersonWork.Handle.ToInt32(), 0);
foreach (ColumnHeader Column in lViewPersonWork.Columns)
{
if (e.X + pos >= StartX + Column.Width)
{
StartX += Column.Width;
ColumnIndex += 1;
}
} if (ColumnIndex < this.lViewPersonWork.Columns.Count - 1)
{
return;
} this.txtInput = new TextBox(); //locate the txtinput and hide it. txtInput为TextBox
this.txtInput.Parent = this.lViewPersonWork; //begin edit
if (item != null)
{
rect.X = StartX;
rect.Width = this.lViewPersonWork.Columns[ColumnIndex].Width; //得到长度和ListView的列的长度相同
this.txtInput.Bounds = rect;
this.txtInput.Multiline = true;
//显示文本框
this.txtInput.Text = item.SubItems[ColumnIndex].Text;
this.txtInput.Tag = item.SubItems[ColumnIndex];
this.txtInput.KeyPress += new KeyPressEventHandler(txtInput_KeyPress);
this.txtInput.Focus();
}
}
catch (Exception ex)
{ }
} //回车保存内容
private void txtInput_KeyPress(object sender, KeyPressEventArgs e)
{
try
{
if ((int)e.KeyChar == 13)
{
if (this.txtInput != null)
{
ListViewItem.ListViewSubItem lvst = (ListViewItem.ListViewSubItem)this.txtInput.Tag; lvst.Text = this.txtInput.Text; this.txtInput.Dispose();
}
}
}
catch (Exception ex)
{ }
} //释放文本框内容
private void lViewPersonWork_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
if (this.txtInput != null)
{
if (this.txtInput.Text.Length > 0)
{
ListViewItem.ListViewSubItem lvst = (ListViewItem.ListViewSubItem)this.txtInput.Tag; lvst.Text = this.txtInput.Text;
} this.txtInput.Dispose();
}
}
catch (Exception ex)
{ }
}

C# 双击ListView出现编辑框可编辑,回车确认的更多相关文章

  1. myeclipse页面编辑框空格、回车符、对齐出现特殊字符

    myeclipse页面编辑框空格.回车符.对齐出现特殊字符 解决办法:window-preferences-general-editors-Text Editors    把show whitespa ...

  2. MFC中关于子对话框中编辑框不能编辑的问题

    最近在用MFC写程序.发现子对话框中的编辑框不能编辑.具体问题是这样的: 我有一个对话框YhglDlg,创建了这个对话框的子对话框ZjyhxxDlg,子对话框的Style属性为Child,Border ...

  3. 双击内容变input框可编辑,失去焦点后修改的数据异步提交

    <html> <head> <meta charset="utf8"> <script src="https://cdn.boo ...

  4. PropertyGrid—为复杂属性提供下拉式编辑框和弹出式编辑框

    零.引言 PropertyGrid中我们经常看到一些下拉式的编辑方式(Color属性)和弹出式编辑框(字体),这些都是为一些复杂的属性提供的编辑方式,本文主要说明如何实现这样的编辑方式. 一.为属性提 ...

  5. cocos2dx基础篇(13) 编辑框之二CCEditBox

    [3.x] (1)去掉"CC" (2)设置虚拟键盘的编辑类型 > EditBoxInputMode 变为强枚举 EditBox::EditBoxInputMode // SI ...

  6. Vue - 实现双击显示编辑框;自动聚焦点击的显示框;点击编辑框外的地方,隐藏编辑框

    实现这三个功能的踩坑记录. 1. 需求 在Vue中,有一个input, 双击时编辑文本,点击该input节点外的其他地方,则取消编辑. 那么这里有三个要实现的地方 第一是双击显示编辑框. 第二是自动聚 ...

  7. NGUI 使用EventDelegate.Add与UIInput.onSubmit、UIInput.onChange限定编辑框中的内容

    Unity中,使用NGUI,通常为某个控件(如按钮)绑定事件(单击.双击.拖拽.滚轮.选择等)都是用UIEventListener,比如: public void Bind() { UIEventLi ...

  8. MFC控件编程之 按钮编辑框.静态文本的使用,以及访问控件的七种方法.

    MFC控件编程之 按钮编辑框.静态文本的使用以及访问控件的七种方法. 一丶按钮.静态文本的通用属性. 他们都有一个属性.就是可以输入标题内容.以及可以自定义控件ID. 创建一个MFC Dlg对话框. ...

  9. listview 样式 LVS_REPORT 与 LVS_EDITLABELS 编辑单元格时,当前行第一列内容不显示

    今天想做一个可编辑单元格的 listview,样式是 LVS_REPORT 与 LVS_EDITLABELS 网上搜索了一些相关资料,照葫芦画瓢写了一个,可测试的时候发现,当从第2列开始编辑的时候,第 ...

随机推荐

  1. Linux 学习笔记之超详细基础linux命令 Part 7

    Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 6----------------- ...

  2. Session Cookies随笔

    1.对于Session而言 它是用来保存在服务端的信息,可以用来做登录验证,在后台保存有用信息. 一个浏览器访问一个网站,就是建立一个连接,连接信息是独立的,就是在该建立的连接内,保存到Session ...

  3. Ubuntu18---安装Redis和简单使用Redis

    前言 Redis是常用基于内存的Key-Value数据库,比Memcache更先进,支持多种数据结构,高效,快速.用Redis可以很轻松解决高并发的数据访问问题:作为实时监控信号处理也非常不错. 环境 ...

  4. shell下变量比较最佳实践

    https://stackoverflow.com/questions/13617843/unary-operator-expected If you know you're always going ...

  5. OneAPM大讲堂 | Metrics, Tracing 和 Logging 的关系

    [编者按]这是在 OpenTracing 和分布式追踪领域内广受欢迎的一片博客文章.在构建监控系统时,大家往往在这几个名词和方式之间纠结. 通过这篇文章,作者很好的阐述了分布式追踪.统计指标与日志之间 ...

  6. 03-openldap服务端安装配置

    openldap服务端安装配置 阅读目录 基础环境准备 安装openldap服务端 初始化openldap配置 启动OpenLDAP 重新生成配置文件信息 规划OpenLDAP目录树组织架构 使用GU ...

  7. 关掉 ubuntu bug 报告功能

    想关掉这个: 通过服务加配置文件关掉

  8. ELK-logstash-6.3.2部署

    Logstash 是一款强大的数据处理工具,它可以实现数据传输,格式处理,格式化输出,还有强大的插件功能,常用于日志处理. 1. logstash部署 [yun@mini04 software]$ p ...

  9. windows 10 安装TortoiseSVN.msi时报2503的错误

    解释: 出现这个错误的原因是权限不足,右击安装程序也没有“以管理员身份运行”按钮. 解决: 输入 msiexec /package  F:\TortoiseSVN-1.9.7.27907-x64.ms ...

  10. Appium1.9.1 部署及结果检验

    1.官网下载最新的 appium 2.点击 Download Appium 3.选择适用于自己操作系统的版本,我的是 windows版本,就选择如下红圈起的 4.点击安装,一直点 下一步 直到提示安装 ...