WPF 应用程序无法处理多次过快的按钮单击

问题描述 投票:0回答:1

在 WPF C# 应用程序中,我有 2 个按钮。如果用户单击第一个按钮,然后很快单击第二个按钮,则仅调用第二个按钮的单击事件处理程序。任何具有 2 个按钮(每个按钮都有一个单击事件处理程序)的 WPF C# 应用程序位置都会显示该问题。

任何人都可以解释这种现象并建议如何在调用第二个按钮事件处理程序之前调用第一个按钮事件处理程序吗?

我尝试根据实际的点击顺序提供2个不同按钮的2次点击事件。然而,如果两次单击之间的时间间隔很短,则仅调用第二个单击按钮处理程序。

wpf button events
1个回答
0
投票

问题绝对不在于两次快速点击不同的按钮。

在空项目中运行此示例,一切都会正常工作:

    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition/>
        </Grid.RowDefinitions>
        <UniformGrid Columns="2">
            <Button Content="One" Click="OnOneClick" Margin="5" Padding="5"/>
            <Button Content="Two" Click="OnTwoClick" Margin="5" Padding="5"/>
        </UniformGrid>
        <TextBlock x:Name="tblock" Grid.Row="1" Margin="5"/>
        <x:Code>
            <![CDATA[
        private void OnOneClick(object sender, RoutedEventArgs e)
        {
            tblock.Text += "OnOneClick" + Environment.NewLine;
        }

        private void OnTwoClick(object sender, RoutedEventArgs e)
        {
            tblock.Text += "OnTwoClick" + Environment.NewLine;
        }
            ]]>
        </x:Code>
    </Grid>
</Window>
© www.soinside.com 2019 - 2024. All rights reserved.