1.TextBox.AcceptsReturn属性
MSDN:
如果按 Enter 键时在多行版本的控件中创建一行新文本,则为 true;如果按 Enter 键时激活窗体的默认按钮,则为 false。默认为 false。
如果此属性的值为 false,则用户必须按 Ctrl+Enter 键才能在多行 TextBox 控件中创建一个新行。如果该窗体没有默认按钮,则按 Enter 时将总是会在控件中创建一行新文本,不管该属性的值是什么。
我将TextBox设置为多行模式,保持这个属性的默认值(false),然后将旁边的Button.TabIndex设为0,启动程序后,在文本框内输入Enter键后,文本自动换行,但并没有激活这个按钮;后来,又在Loading事件内添加this.button1.Select()方法,还是无效。
Google一下才知道,原来窗体的默认按钮是通过Form.AcceptButton属性设置的。在Loading事件内设置此属性,启动程序,发现按钮的外观的确有所不同;在文本框内按Enter,立即引发Button的Click事件;在文本框内按Ctrl+Enter,文本换行。
至于单行TextBox,若设置默认按钮,按Enter同样激活Button;若未设置,按了文本框没有反应。