在鼠标上弹出一个文本框,单击一个图片框添加到网格视图

本文关键字:一个 添加 视图 网格 单击 文本 鼠标 | 更新日期: 2023-09-27 18:06:20

我尝试以不同的方式将http://stackoverflow.com/questions/5549150/popping-up-a-textbox-on-mouse-click-over-a-picturebox-for-adding-custom-note-to-p应用到我的项目中。当我点击图片框时,文本框应该出现,在点击位置关闭后,输入的值应该与以前的数据逐行转到datagridview。

但是在这个方法中,所有之前的数据都会被清除。我该怎么调整呢

private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
{
  // in this case we create a TextBox, but the
  // PopupForm can hold any type of control.
  TextBox textBox = new TextBox();
  Point location = pictureBox1.PointToScreen(e.Location);
  PopupForm form = new PopupForm(textBox, location, () => this.addToGrid(textBox.Text,e.Y)); 
  form.Show();
}

 private void addToGrid(String s,int loc)
 {
     DataGridViewRow row = new DataGridViewRow(); this.dataGridView1.Rows.Add(row);
     this.dataGridView1.Rows[dataGridView1.RowCount - 1].Cells[0].Value = loc.ToString();
     this.dataGridView1.Rows[dataGridView1.RowCount - 1].Cells[1].Value = s; 
 }

在鼠标上弹出一个文本框,单击一个图片框添加到网格视图

我认为要解决你的问题,你需要这样做:

private void addToGrid(String s,int loc)
 {
     //create a new row
     DataGridViewRow row = new DataGridViewRow();
     //after initialize  values
     row.Cells[0].Value = loc.ToString();
     row.Cells[1].Value = s; 
     //add row to grid
     this.dataGridView1.Rows.Add(row);       
 }