C# 鼠标右键单击列表框会使应用程序崩溃

C# 鼠标右键单击列表框会使应用程序崩溃,c#,wpf,listbox,C#,Wpf,Listbox,当我用鼠标右键点击我的空列表框时,整个应用程序就崩溃了,我甚至不知道如何调试它,在哪里放置try-catch等等 有人遇到过这样的问题吗?关于如何解决这个问题有什么想法吗 列表框上有我的XAML: <ListBox x:Name="LstStat" HorizontalAlignment="Left" Height="129" Margin="10,10,0,0" VerticalAlignment="Top" Width="330" FontSize=

当我用鼠标右键点击我的空列表框时,整个应用程序就崩溃了,我甚至不知道如何调试它,在哪里放置
try-catch
等等

有人遇到过这样的问题吗?关于如何解决这个问题有什么想法吗

列表框上有我的XAML:

    <ListBox x:Name="LstStat" HorizontalAlignment="Left" Height="129" Margin="10,10,0,0" 
             VerticalAlignment="Top" Width="330" FontSize="16"
             ItemsSource="{Binding StatisticsQueries}" Cursor="Arrow">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <Label Content="{Binding Path=Name}" FontWeight="Medium" FontSize="18" FontFamily="HelveticaNeueCyr"/>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>
这是所有与我的列表框相关的代码,但它与RightMouseClick无关。。。为什么它不会在任何其他点击或其他东西时崩溃?

谢谢大家! 通过禁用鼠标右键单击我的列表框解决了此问题

private void LstStat_PreviewMouseRightButtonDown(object sender, MouseButtonEventArgs e)
{
    e.Handled = true;
}

private void LstStat_PreviewMouseRightButtonUp(object sender, MouseButtonEventArgs e)
{
    e.Handled = true;
}
谢谢大家! 通过禁用鼠标右键单击我的列表框解决了此问题

private void LstStat_PreviewMouseRightButtonDown(object sender, MouseButtonEventArgs e)
{
    e.Handled = true;
}

private void LstStat_PreviewMouseRightButtonUp(object sender, MouseButtonEventArgs e)
{
    e.Handled = true;
}
谢谢大家! 通过禁用鼠标右键单击我的列表框解决了此问题

private void LstStat_PreviewMouseRightButtonDown(object sender, MouseButtonEventArgs e)
{
    e.Handled = true;
}

private void LstStat_PreviewMouseRightButtonUp(object sender, MouseButtonEventArgs e)
{
    e.Handled = true;
}
谢谢大家! 通过禁用鼠标右键单击我的列表框解决了此问题

private void LstStat_PreviewMouseRightButtonDown(object sender, MouseButtonEventArgs e)
{
    e.Handled = true;
}

private void LstStat_PreviewMouseRightButtonUp(object sender, MouseButtonEventArgs e)
{
    e.Handled = true;
}

尝试执行以下操作:包括Try catch块并显示错误消息:

private void FillStatisticsList()
{
    try
    {
        const string statsQuery = "SELECT * FROM cached_queries WHERE is_statistics IS TRUE;";
        var connection = new MySqlConnection(DatabaseModel.ConnectionString);
        connection.Open();

        var cmd = new MySqlCommand(statsQuery, connection);

        cmd.ExecuteNonQuery();
        var reader = cmd.ExecuteReader();
        cmd.CommandType = CommandType.Text;

        StatisticsQueries = new ObservableCollection<Query>();

        while (reader.Read())
        {
            StatisticsQueries.Add(new Query
            {
                Id = reader["id"].ToString(),
                Autoschool = reader["autoschool"].ToString(),
                IsStatistics = reader["is_statistics"].ToString(),
                Name = reader["query_name"].ToString(),
                Text = reader["query_text"].ToString()
            });
        }
        connection.Close();
    }
    catch (Exception ex) { MessageBox.Show(ex.Message); }
}
private void FillStatisticsList()
{
尝试
{
const string statsQuery=“从缓存的_查询中选择*,其中is_statistics为TRUE;”;
var connection=newmysqlconnection(DatabaseModel.ConnectionString);
connection.Open();
var cmd=新的MySqlCommand(statquery,connection);
cmd.ExecuteNonQuery();
var reader=cmd.ExecuteReader();
cmd.CommandType=CommandType.Text;
StatisticsQueries=新的ObservableCollection();
while(reader.Read())
{
统计查询。添加(新查询)
{
Id=读卡器[“Id”]。ToString(),
Autoschool=读卡器[“Autoschool”]。ToString(),
IsStatistics=读卡器[“is_statistics”]。ToString(),
Name=reader[“query_Name”].ToString(),
Text=reader[“query_Text”].ToString()
});
}
connection.Close();
}
catch(Exception ex){MessageBox.Show(ex.Message);}
}

希望这能有所帮助

尝试执行以下操作:包括Try-catch块并显示错误消息:

private void FillStatisticsList()
{
    try
    {
        const string statsQuery = "SELECT * FROM cached_queries WHERE is_statistics IS TRUE;";
        var connection = new MySqlConnection(DatabaseModel.ConnectionString);
        connection.Open();

        var cmd = new MySqlCommand(statsQuery, connection);

        cmd.ExecuteNonQuery();
        var reader = cmd.ExecuteReader();
        cmd.CommandType = CommandType.Text;

        StatisticsQueries = new ObservableCollection<Query>();

        while (reader.Read())
        {
            StatisticsQueries.Add(new Query
            {
                Id = reader["id"].ToString(),
                Autoschool = reader["autoschool"].ToString(),
                IsStatistics = reader["is_statistics"].ToString(),
                Name = reader["query_name"].ToString(),
                Text = reader["query_text"].ToString()
            });
        }
        connection.Close();
    }
    catch (Exception ex) { MessageBox.Show(ex.Message); }
}
private void FillStatisticsList()
{
尝试
{
const string statsQuery=“从缓存的_查询中选择*,其中is_statistics为TRUE;”;
var connection=newmysqlconnection(DatabaseModel.ConnectionString);
connection.Open();
var cmd=新的MySqlCommand(statquery,connection);
cmd.ExecuteNonQuery();
var reader=cmd.ExecuteReader();
cmd.CommandType=CommandType.Text;
StatisticsQueries=新的ObservableCollection();
while(reader.Read())
{
统计查询。添加(新查询)
{
Id=读卡器[“Id”]。ToString(),
Autoschool=读卡器[“Autoschool”]。ToString(),
IsStatistics=读卡器[“is_statistics”]。ToString(),
Name=reader[“query_Name”].ToString(),
Text=reader[“query_Text”].ToString()
});
}
connection.Close();
}
catch(Exception ex){MessageBox.Show(ex.Message);}
}

希望这能有所帮助

尝试执行以下操作:包括Try-catch块并显示错误消息:

private void FillStatisticsList()
{
    try
    {
        const string statsQuery = "SELECT * FROM cached_queries WHERE is_statistics IS TRUE;";
        var connection = new MySqlConnection(DatabaseModel.ConnectionString);
        connection.Open();

        var cmd = new MySqlCommand(statsQuery, connection);

        cmd.ExecuteNonQuery();
        var reader = cmd.ExecuteReader();
        cmd.CommandType = CommandType.Text;

        StatisticsQueries = new ObservableCollection<Query>();

        while (reader.Read())
        {
            StatisticsQueries.Add(new Query
            {
                Id = reader["id"].ToString(),
                Autoschool = reader["autoschool"].ToString(),
                IsStatistics = reader["is_statistics"].ToString(),
                Name = reader["query_name"].ToString(),
                Text = reader["query_text"].ToString()
            });
        }
        connection.Close();
    }
    catch (Exception ex) { MessageBox.Show(ex.Message); }
}
private void FillStatisticsList()
{
尝试
{
const string statsQuery=“从缓存的_查询中选择*,其中is_statistics为TRUE;”;
var connection=newmysqlconnection(DatabaseModel.ConnectionString);
connection.Open();
var cmd=新的MySqlCommand(statquery,connection);
cmd.ExecuteNonQuery();
var reader=cmd.ExecuteReader();
cmd.CommandType=CommandType.Text;
StatisticsQueries=新的ObservableCollection();
while(reader.Read())
{
统计查询。添加(新查询)
{
Id=读卡器[“Id”]。ToString(),
Autoschool=读卡器[“Autoschool”]。ToString(),
IsStatistics=读卡器[“is_statistics”]。ToString(),
Name=reader[“query_Name”].ToString(),
Text=reader[“query_Text”].ToString()
});
}
connection.Close();
}
catch(Exception ex){MessageBox.Show(ex.Message);}
}

希望这能有所帮助

尝试执行以下操作:包括Try-catch块并显示错误消息:

private void FillStatisticsList()
{
    try
    {
        const string statsQuery = "SELECT * FROM cached_queries WHERE is_statistics IS TRUE;";
        var connection = new MySqlConnection(DatabaseModel.ConnectionString);
        connection.Open();

        var cmd = new MySqlCommand(statsQuery, connection);

        cmd.ExecuteNonQuery();
        var reader = cmd.ExecuteReader();
        cmd.CommandType = CommandType.Text;

        StatisticsQueries = new ObservableCollection<Query>();

        while (reader.Read())
        {
            StatisticsQueries.Add(new Query
            {
                Id = reader["id"].ToString(),
                Autoschool = reader["autoschool"].ToString(),
                IsStatistics = reader["is_statistics"].ToString(),
                Name = reader["query_name"].ToString(),
                Text = reader["query_text"].ToString()
            });
        }
        connection.Close();
    }
    catch (Exception ex) { MessageBox.Show(ex.Message); }
}
private void FillStatisticsList()
{
尝试
{
const string statsQuery=“从缓存的_查询中选择*,其中is_statistics为TRUE;”;
var connection=newmysqlconnection(DatabaseModel.ConnectionString);
connection.Open();
var cmd=新的MySqlCommand(statquery,connection);
cmd.ExecuteNonQuery();
var reader=cmd.ExecuteReader();
cmd.CommandType=CommandType.Text;
StatisticsQueries=新的ObservableCollection();
while(reader.Read())
{
统计查询。添加(新查询)
{
Id=读卡器[“Id”]。ToString(),
Autoschool=读卡器[“Autoschool”]。ToString(),
IsStatistics=读卡器[“is_statistics”]。ToString(),
Name=reader[“query_Name”].ToString(),
Text=reader[“query_Text”].ToString()
});
}
connection.Close();
}
catch(Exception ex){MessageBox.Show(ex.Message);}
}

希望这能有所帮助

“我甚至不知道如何调试它”-这是关于堆栈溢出的许多问题的来源。也许你想学习如何调试。这将使您的生活更轻松。您需要向我们显示。csi如果没有其他帮助,请在Visual Studio中设置并打开转储文件。查看更新“崩溃”是什么意思?您会遇到什么异常情况?“我甚至不知道如何调试它”-这是关于堆栈溢出的许多问题的根源。也许你想学习如何调试。这将使您的生活更轻松。您需要向我们显示。csi如果没有其他帮助,请在Visual Studio中设置并打开转储文件。查看更新“崩溃”是什么意思?你有什么例外