0

フォームに1 つのlistboxコントロールと 3 つがありますtextbox

ユーザーが言うことにフォーカスを持っていて、ユーザーがtxtbox1アイテムをクリックするlistboxと、選択されたアイテムのテキストがフォーカスに設定されますtextbox1

しかし、私の場合、アイテムをクリックするたびにlistboxtxtbox1フォーカスがまったくありません。

private void lstFields_MouseClick(object sender, MouseEventArgs e)
    {
        if (e.Button == MouseButtons.Left)
        {
            ListBoxControl ListBox = (ListBoxControl)sender;
            int itemIndex = ListBox.IndexFromPoint(e.Location);
            if (itemIndex == -1)
            {
                lstFields.SelectedIndex = -1;
                return;
            }
            else
            {
                //Here I need that focused textbox to set value
            }

        }
    }
4

1 に答える 1

3

これを試してください、これはうまくいきます

private TextBox lastFocused;

private void Form1_Load(object sender, EventArgs e)
    {
        foreach (var box in Controls.OfType<TextBox>())
        {
            box.LostFocus += textBoxFocusLost;
        }
    }


private void textBoxFocusLost(object sender, EventArgs e)
{
    lastFocused = (TextBox)sender;
}

それから。

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (lastFocused != null)
        {
            lastFocused.Text = listBox1.SelectedItem.ToString();
        }
    }

この助けを願っています。

于 2013-03-12T07:58:38.103 に答える