【发布时间】:2020-05-12 02:40:59
【问题描述】:
我需要使用以下规则在 C# 中模仿单选按钮逻辑(2 个按钮/事件):
- 互斥
- 一旦选择了其中任何一个,用户就无法将其重置 - 因为用户无法再次断言事件以将其删除。他必须不断在两个事件之间切换才能改变任何事情。他无法撤消事件所做的任何事情。
详细说明:假设我有 2 个事件 A 和 B,它们与键盘按钮 A 和 B 相关联。
private void eventA()
{
//// draws red circle at current mouse position
}
private void eventB()
{
//// draws blue circle at current mouse position
}
private void Handlekeyboard()
{
keyboardState = Keyboard.GetState();
if (keyboardState.IsKeyDown(Key.A) && lastKeyboardState.IsKeyUp(Key.A))
{
EventA_bool = true;
lastKeyboardState = keyboardState;
}
if (keyboardState.IsKeyDown(Key.B) && lastKeyboardState.IsKeyUp(Key.B))
{
EventB_bool = true;
lastKeyboardState = keyboardState;
}
}
protected override OnMouseMove (MouseButtonEventArgs e)
{
if(EventA_bool)
{
EventA ();
}
else if(EventB_bool)
{
EventB ();
}
}
所以如果我点击键盘按钮“A”,一个红色圆圈将跟随鼠标位置。然后,如果我单击“B”,红色圆圈应该在“B”单击之前的最后一个位置停止,现在蓝色圆圈跟随鼠标移动。反之亦然,如果我从按钮“B”开始,则会出现蓝色圆圈。然后,如果我单击“A”,红色圆圈会跟随,蓝色圆圈会停止但不会消失。我不确定如何在不删除或擦除事件 B 的情况下执行事件 A。
【问题讨论】:
标签: c# radio-button