2012-05-27 227 views
0

我已將圖片框添加到FlowLayout面板和ContextMenu條(與圖片框關聯)與'Add description'項目。在單獨的表格中添加圖片描述

當我在PictureBox上點擊右鍵並選擇'Add description'時,會彈出一個新窗體,其中包含圖片的大預覽和用於編寫描述的文本框。

如何保留用戶在新窗體關閉後寫入的文本,因此如果用戶想要編輯描述,他不必從頭開始重新輸入它?

我想我必須將描述存儲在某個地方,並在用戶再次單擊相同圖片時將其加載到表單中,但我怎麼知道他點擊了哪張圖片?

這可能是一個更明智的方法,但現在我想不出一個,所以我希望你們能幫助我。

+0

你能在圖片上添加標記? –

+0

標籤屬性解決了它,謝謝。 – Marko

+0

好。我很高興你成立了。 –

回答

0

您應該可以使用Tag屬性來保存圖片描述信息。

至於在上下文中確定PictureBox,您可以使用MouseEnter事件。基本上定義一個級別PictureBox變量(PictureBoxOnContext)。

然後你就可以添加一個MouseEnter事件處理程序PictureBox實例,並投了senderPictureBox並將其分配給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; 

    } 
} 
+0

'標籤'屬性解決了一切,謝謝。 – Marko