我使用没有下拉列表的组合框只接受文本输入。在Windows窗体上,我有一个OK按钮,它调用一个使用combobox.Text属性的函数。
问题是我想在用户输入内容然后点击ENTER时调用此函数。我正在尝试处理KeyDown事件(我已经尝试了其他具有相同结果的事件),但我发现在此触发后,combobox.Text为null。我想要这样的东西理想地工作:
private void cbox_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyValue == 13)
{
OK(cbox.Text);
}
}
为什么在KeyDown事件之后擦除了combobox.Text?对于Textbox,这个问题不会发生吗?我几乎绝望了但是我不想在程序中的每个表格上替换这个盒子lol ...请指教!
答案 0 :(得分:1)
您的表单上是否有多个ComboBox?该活动适用于cbox
,但您将从cbo
获得文字结果。
我建议您将代码更改为:
private void cbox_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter || e.KeyCode == Keys.Return)
{
string result = cbox.Text;
}
}
答案 1 :(得分:0)
当按下Enter键时,由于设置了AutoCompleteMode,ComboBox将清除事件发生之前的文本。
只需将其更改为无。
package lab14.panoslab.Repositories;
import lab14.panoslab.Models.Account;
import org.apache.catalina.User;
import org.hibernate.annotations.NotFound;
import org.hibernate.annotations.NotFoundAction;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface UserRepository extends JpaRepository<Account,Long> {
@NotFound(action = NotFoundAction.IGNORE)
List<User> findByUsername(String username);
}