注意位置要对应 哪个被选中 哪个的上面出现TextBox

解决方案 »

  1.   

    参考如下代码
    private void listBox1_MouseDown(object sender, MouseEventArgs e)
    {
        if (((ListBox)sender).SelectedIndex < 0) // 无选中项
        {
            textBox1.Visible = false;
            return;
        }
        textBox1.Visible = true;
        Rectangle vRectangle = ((ListBox)sender).GetItemRectangle(
            ((ListBox)sender).SelectedIndex);  // 取得选中项的区域
        vRectangle.Offset(((ListBox)sender).Location); // 偏移到ListBox所在位置
        vRectangle.Offset(2, 2); // 偏移边框    textBox1.BorderStyle = BorderStyle.None;
        textBox1.Text = ((ListBox)sender).Items[
            ((ListBox)sender).SelectedIndex].ToString();
        textBox1.BringToFront(); // 置顶
        textBox1.Bounds = vRectangle;
        textBox1.Focus(); // 得到焦点
    }