【发布时间】:2019-01-30 13:28:12
【问题描述】:
我对 C# 和一般编码非常陌生。我有一个关于我的小项目的问题。我有多个连接到我的 SQL 数据库的列表框。在列表框下,我有文本框可以将新值输入到数据库中。
我遇到的问题是,每当我在文本框中输入某些内容时(我这样做了,所以按 Enter 键会运行 Keydown 事件以添加行),我的列表框中的选择会发生变化。这很烦人,因为我选择的内容很重要,因为我加入了多个数据库,而选择决定了输入的去向。
所以我的问题是,在 WPF 或 C# 中有没有办法防止选中的项目被取消选中?我已经搜索了一段时间,但除了我所拥有的小知识无法理解的解释之外找不到任何东西。
编辑
感谢您的回复。我查看了人们发布的链接,但我无法弄清楚它们如何应用于我的确切问题。 我一直在尝试将 SelectedIndex 保存在一个变量中,然后将 SelectedIndex 设置回该变量,但我一定在某处犯了错误。
int y;
private void TxbSchüler_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
y = listClasses.SelectedIndex; // Here
try
{
string query = "insert into Schüler values (@Name, @KlassenId)";
SqlCommand sqlCommand = new SqlCommand(query, sqlConnection);
sqlConnection.Open();
sqlCommand.Parameters.AddWithValue("@Name", txbSchüler.Text.ToString());
sqlCommand.Parameters.AddWithValue("@KlassenId", listClasses.SelectedValue);
sqlCommand.ExecuteScalar();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
finally
{
sqlConnection.Close();
ShowStudent();
ShowClass();
}
}
listClasses.SelectedIndex = y; //here
}
【问题讨论】:
-
我很确定您必须手动遍历它们并保存选定的索引,然后在添加新值后运行并重新选择它们。
-
这是一个类似的场景,除了他们正在切换标签并且它正在重置而不是添加新项目。