我将图片框添加到FlowLayout
面板和ContextMenu
条带(与图片框相关联)并添加'Add description'
项。
当我右键单击PictureBox
并选择'Add description'
时,会弹出一个新表单,其中包含大量预览图片和一个文本框以编写说明。
如何在新窗体关闭后保留用户在新窗体上写入的文本,因此如果用户想要编辑说明,他不必再从头开始键入?
我想我必须将描述存储在某处并在用户再次点击同一张图片时将其加载到表单中,但我怎么知道他点击了哪张图片?
这可能是一个更明智的方法,但我现在想不到一个,所以我希望你们能帮助我。
答案 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;
}
}