0

我将图片框添加到FlowLayout面板和ContextMenu带有项目的条带(与图片框相关联)'Add description'

当我右键单击 aPictureBox并选择'Add description'时,会弹出一个新表单,其中包含图片的大预览和一个用于编写描述的文本框。

如何在新表单关闭后保留用户在新表单上编写的文本,这样如果用户想要编辑描述,他就不必再次从头开始输入?

我想当用户再次单击同一张图片时,我必须将描述存储在某处并将其加载到表单中,但是我怎么知道他点击了哪张图片?

可能有一种更聪明的方法可以解决这个问题,但我现在想不出一个,所以我希望你们能帮助我。

4

1 回答 1

0

您应该能够使用Tag属性来保存图片描述信息。

至于确定PictureBox您可以使用MouseEnter事件的上下文。基本上定义一个类级PictureBox变量(PictureBoxOnContext)。

然后,您可以将MouseEnter事件处理程序添加到PictureBox实例并将其强制sender转换为 aPictureBox并将其分配给PictureBoxOnContext变量。

当您右键单击 时PictureBoxMouseEnter已经触发并且相关项PictureBox被选择到PictureBoxOnContext变量中。

然后在“添加描述”上下文菜单上单击您可以检查是否PictureBoxOnContext != null并将其传递给预览表单。

(剩下的你应该能够弄清楚;可能利用代表将信息传回给父表单)

private PictureBox PictureBoxOnContext;

private void AddPicture_Click(object sender, EventArgs e)
{
  PictureBox picBox = new PictureBox();   
  //Your code logic to add PictureBox to FlowLayout 

  picBox.MouseEnter += new EventHandler(PictueBox_MouseEnter);

}

void PictueBox_MouseEnter(object sender, EventArgs e)
{
   PictureBoxOnContext = (PictureBox)sender;
}


private void AddDescriptionToolStripMenuItem_Click(object sender, EventArgs e)
{
    if (PictureBoxOnContext != null)
    {
        //Pass this PictureBoxOnContext to your preview window/ your opearations

    PictureBoxOnContext = null;

    } 
}
于 2012-05-27T03:29:06.167 回答