Появление TextBox при щелчке мыши над PictureBox для добавления в вид сетки - PullRequest
1 голос
/ 21 августа 2011

Я пытаюсь применить http: //stackoverflow.com/questions/5549150/popping-up-a-textbox-on-mouse-click-over-a-picturebox-for-adding-custom-note- to-p к моему проекту другим способом. Когда я нажимаю на картинку, должно появиться текстовое поле, и после того, как оно закрылось в той позиции, по которой щелкнули, введенное значение должно перейти к просмотру таблицы данных строка за строкой с предыдущими данными.

Но в этом методе все предыдущие данные будут очищаться все время. Как мне отрегулировать

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; 
 }

1 Ответ

0 голосов
/ 21 августа 2011

Я думаю, что для решения вашей проблемы вам нужно сделать что-то вроде этого:

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);       
 }
...