-4
我有一個上下文菜單,允許更改其正常工作的任何控件的背景顏色和前景顏色。將值賦給名爲與另一個類的變量相同的類變量
private void backgroundColorToolStripMenuItem_Click(object sender, EventArgs e)
{
if (colorDialog1.ShowDialog() == DialogResult.OK)
{
contextColorOptions.SourceControl.BackColor = colorDialog1.Color;
}
}
不過,我也有一個用來保存這些顏色在類級別colorPrefs的實例名稱ColorPreferences類。
public class ColorPreferences
{
public Color btnTestBack { get; set; }
public Color betnTestFore { get; set; }
}
我想可以右鍵單擊爲btnTest並使其在選擇的顏色分配給變量ColorPreferences
像這樣的事情
private void backgroundColorToolStripMenuItem_Click(object sender, EventArgs e)
{
if (colorDialog1.ShowDialog() == DialogResult.OK)
{
contextColorOptions.SourceControl.BackColor = colorDialog1.Color;
colorPrefs.(source control object)Back = colorDialog1.Color;
//the above line does not work and is a concept idea of what i want to achieve.
}
}
問:我怎樣才能使用的源控制上下文菜單,使其指向ColorPreferences類中的相同變量。 例如,右鍵單擊的對象是btnTest,可以說我使用了我的更改背景顏色方法。我希望將所選顏色保存到colorPrefs.btnTestBack。所以名稱總是與添加Back或Fore到最後一樣。
否則我有超過100個控件在項目中使用這個,做100如果語句和添加,刪除或編輯這些控制名稱將幾乎不可避免地犯了一個錯誤。
我已經通過msdn,堆棧溢出和其他代碼論壇區域,但無濟於事。 在此先感謝。
什麼是你的問題?你是否想在一個操作中更改所有控件的顏色? –
你可以看看.NET的SystemColors類。最基本的方法是在ColorPreferences上創建靜態特性以獲得更高級的技術,您應該查看依賴注入。 – Wouter
根據你的問題的實際情況,讓點擊事件全部轉到一個單獨的處理程序,它實際上查看'object sender'變量是一個選項。是的,你可以在多個類中使用一個變量名。我會建議一個接口,其中該變量名稱始終存在。 – zzxyz