一、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);
- 相关评论
- 我要评论
-