在单独的表单上添加图片描述

时间:2012-05-27 00:58:33

标签: c# vb.net visual-studio-2010 visual-studio

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

当我右键单击PictureBox并选择'Add description'时,会弹出一个新表单,其中包含大量预览图片和一个文本框以编写说明。

如何在新窗体关闭后保留用户在新窗体上写入的文本,因此如果用户想要编辑说明,他不必再从头开始键入?

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

这可能是一个更明智的方法,但我现在想不到一个,所以我希望你们能帮助我。

1 个答案:

答案 0 :(得分:0)

您应该可以使用Tag属性来保存图片说明信息。

至于识别PictureBox上下文,您可以使用MouseEnter事件。基本上定义一个班级PictureBox变量(PictureBoxOnContext)。

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

当您右键点击PictureBox时,MouseEnter已被触发且相关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;

    } 
}