0

プログラムで生成された一連のラベルがあります。ラベルの背景とテキストを変更したい:

1-mouse_click イベント
2-マウスのクリックと他のラベルへの移動 (ユーザーが 1 回のクリックでいくつかのラベルを変更し (押したままにして)、隣接するラベルに移動できるようにしたい。2 番目の目的にはどのイベントを使用すればよいでしょうか? コードを使用します)以下の mouse_click イベント:

    private void labels_Click(object sender, EventArgs e)
    {
        Label lbl = (Label)sender;
        if (lbl.Text == "1")
        {
            lbl.Text = "0";
            lbl.BackColor = Color.FromArgb(225, 0, 0);
        }
        else
        {
            lbl.Text = "1";
            lbl.BackColor = Color.FromArgb(224, 224, 226);
        }
        SetHexNumbers();
    }

ここに画像の説明を入力

4

1 に答える 1

3

を使用する必要がありますが、送信者MouseEnterのプロパティを に設定することを忘れないでください。Capturefalse

これを試して:

bool isMouseDown;

private void labels_Click(object sender, EventArgs e)
{
    DoAction(sender);
}

private void labels_MouseDown(object sender, MouseEventArgs e)
{
    isMouseDown = true;
    DoAction(sender);
}

private void labels_MouseUp(object sender, MouseEventArgs e)
{
    isMouseDown = false;
}


private void label_MouseEnter(object sender, EventArgs e)
{
    if (isMouseDown)
    {
        DoAction(sender);
    }
}

private void DoAction(object sender)
{
    Label lbl = (Label)sender;
    lbl.Capture = false;           //DO NOT FORGET THIS LINE

    if (lbl.Text == "1")
    {
        lbl.Text = "0";
        lbl.BackColor = Color.FromArgb(225, 0, 0);
    }
    else
    {
        lbl.Text = "1";
        lbl.BackColor = Color.FromArgb(224, 224, 226);
    }
    SetHexNumbers();
}
于 2013-03-29T17:27:02.670 に答える