我已经使用RichTextBox构建了一个对话框,我想这样做 有以下行为:
我在RichTextBox中得到了焦点(光标)。 按下ENTER键后,富编辑中应该有一个新行 控制创建。 ENTER不应该关闭对话框[就像现在这样:-(]。
任何想法?
答案 0 :(得分:4)
如果分配了表单的AcceptButton属性,引用表单上的按钮,则会拦截按下回车键。确保表单没有分配任何AcceptButton,并且文本框应该按下回车键并按预期运行。
更新:如果你想拥有AcceptButton的行为并让RichTextBox在聚焦时按下回车键,你可以用两种不同的方式来实现。一种是将表单的KeyPreview属性设置为true,并将以下代码添加到表单的KeyPress事件处理程序中:
private void Form_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)Keys.Enter && this.ActiveControl != theRichTextBox)
{
this.DialogResult = DialogResult.OK;
}
}
另一种方法是分配AcceptButton属性,指出一个按钮(然后将其DialogResult属性设置为OK
)。然后,您可以为RichTextBox控件的Enter和Leave事件添加事件处理程序,该控件将暂时取消分配表单的AcceptButton属性:
private void RichTextBox_Enter(object sender, EventArgs e)
{
this.AcceptButton = null;
}
private void RichTextBox_Leave(object sender, EventArgs e)
{
this.AcceptButton = btnAccept;
}
答案 1 :(得分:0)
你的意思是RichTextBox对吗?您需要将AcceptsReturn属性设置为true。