返回首页

android中文本框和编辑框有什么相同,不同之处

58 2024-06-28 19:22 admin

一、android中文本框和编辑框有什么相同,不同之处

文本框显示的文字 编辑框 编辑文字。。。。。 文本框TextView 显示在安卓屏幕上 显示文字,EditText(编辑框)显示一个下划线。。。下划线内可输入文字。。。

二、如何实现文本编辑框自增长

在前端开发的过程中,我们往往会需要实现一个文本编辑框或者富文本框,浏览器自带的textarea因为不支持动态扩展高度的原因,所以使用时需要我们进行使用js去调整它的高度,其中使用到属性scrollHeight:

function textareaAdapt(event) {

$(event.target).css({'height': 'auto'}).height(event.target.scrollHeight);

}

$('textarea').on('input', textareaAdapt);

同时,有另外一种方式也可以实现高度自增长,就是将div属性contenteditable设置为true,那么div元素就可以实现自增长的文本可编辑框:

$('div').prop('contenteditable', true);

这个时候的可编辑框其实可以拖进来图片,以及带有其他格式的文本,比如按钮。有的同学可能只想拖放进来纯文本,而不是带有格式的HTML代码,这个时候我们可以学习一下contenteditable属性,这个属性现有的值为

true,false,plaintext-only,inherit

四种,其中的plaintext-only值就是只允许普通文本输入,禁止HTML代码,我们可以设置:

$('div').prop('contenteditable', 'plaintext-only');

这样该可编辑框就只允许纯文本输入了,此时粘贴图片进来,也只是这个图片的url。

同样的,在CSS中也有类似属性的定义,就是user-modify,你可以定义:

div.editable {

/* 使元素可读可写 */

-webkit-user-modify: read-write;

/* 仅文本输入 */

-webkit-user-modify: read-write-plaintext-only;

}

然而,与plaintext-only相关的属性和值现在只有Chrome浏览器(即webkit内核)支持,所以如果生产环境需要兼容性,建议采用js控制的方式。

这个时候的div对象并没有足够的标识能够看出可编辑状态,选中时outline样式也不太美观,所以我借鉴bootstrap选中input设置了相应的样式

$('div').prop('contenteditable', true).addClass('editable');

div.editable {

border: 1px solid #ccc;

padding: 6px 12px;

font-size: 14px;

line-height: 1.428;

border-radius: 4px;

}

div.editable:focus {

outline: none;

box-shadow: 0 0 0 2px #dbecfa;

border-color: #66afe9;

}

三、vc编辑框的用法,,

响应 WM_CTLCOLOR 消息

代码:

HBRUSH CXXXXDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)

{

    HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);

    if (pDC->GetCtrlID() == IDC_EDIT1) // 假设你需要修改的编辑框的ID为IDC_EDIT1

    {

        CBrush brush(RGB(255,255,255));// 构造白色刷子,RGB值控制颜色

        CRect rcClient;

        GetClientRect(rcClient);

        pDC->SelectObject(&brush);

        pDC->FillRect(&rcClient, &brush);

        return brush;

    }

    return hbr;

}

四、编辑框的多行显示问题

编辑框只有一个Text属性。你的循环是每次改变这个属性,并不是把内容加进去。如果你代码没错,能显示最后一行的你要的内容的话。只要把循环那里改掉就好了。

比如说,改成

string s=;

for(int y=0;y{ s=s+课程编号:+kb[y]+ +课程名称:+km[y]+ +综合成绩:+zh[y]+ +实得学分: +sd[y]+\r\n; } Dlg3->m_edit.SetWindowText(s);

顶一下
(0)
0%
踩一下
(0)
0%
相关评论
我要评论
用户名: 验证码:点击我更换图片