我有一個用戶控件加載到Form1在WinForm應用程序時,當一個菜單選項被選中。用戶控件具有用於觸發打印機選擇對話框的按鈕,並允許用戶爲應用程序設置多臺打印機。每個按鈕配置應用程序中的設置屬性以存儲打印機。在每個按鈕下都有一個標籤,顯示來自settings屬性的打印機名稱。按鈕點擊後c#標籤文本將不更新usercontrol後
我正在使用事件來管理usercontrol中的按鈕點擊。一切正常的事件與設置屬性中存儲正確的打印機的事件。但是,我希望標籤能夠在打印機對話框中選擇它後立即顯示選定的打印機。它不會顯示打印機的更改,直到我離開usercontrol並返回。然後它爲每個按鈕顯示正確的打印機名稱。
我能夠寫入標籤文本就好了。我嘗試刷新標籤,使標籤失效並更新。似乎沒有任何工作。只有導航離開和返回將在標籤中顯示打印機名稱。
這裏是在Form1上我按一下按鈕處理程序之一:
private void btnTwoByHalf_Click(object sender, EventArgs e)
{
ucPrinterSetup prn = new ucPrinterSetup();
twoByHalf.PropName = "TwoByHalfPrn";
twoByHalf.SetPrinter(twoByHalf.PropName);
prn.lblTwoByHalf.Text = twoByHalf.Printer;
}
這裏是我的菜單選項,單擊處理:
private void configurePrintersToolStripMenuItem_Click(object sender, EventArgs e)
{
ClearFrames();
ucPrinterSetup printerSetup = new ucPrinterSetup();
pnlMenu.Controls.Add(printerSetup);
printerSetup.btnTwoByHalfClick += new EventHandler(btnTwoByHalf_Click);
printerSetup.btnFourByOneClick += new EventHandler(btnFourByOne_Click);
printerSetup.btnFourByTwoFiveClick += new EventHandler(btnFourByTwoFive_Click);
printerSetup.btnMiscClick += new EventHandler(btnMisc_Click);
printerSetup.btnDefaultClick += new EventHandler(btnDefault_Click);
printerSetup.btnSecondaryClick += new EventHandler(btnSecondary_Click);
ucConfigurePrinters configurePrinters = new ucConfigurePrinters();
pnlFrame.Controls.Add(configurePrinters);
}
這裏是ucPrinterSetup.cs我按一下按鈕處理程序:
private void btnTwoByHalf_Click(object sender, EventArgs e)
{
if (btnTwoByHalfClick != null)
btnTwoByHalfClick(sender, e);
}
其他一切正常。在我選擇新的打印機之後,它不會更新label.text,直到我離開ucPrinterSetup並返回。
更新1: 我的打印機正被存儲在應用程序的設置通過:在設置屬性爲應用
twoByHalf.PropName = "TwoByHalfPrn";
twoByHalf.SetPrinter(twoByHalf.PropName);
twoByHalf.PropName是,我已經名稱預先輸入。
我則標籤文本設置爲與打印機的名稱:
prn.lblTwoByHalf.Text = twoByHalf.Printer;
在應用程序設置我有預設的打印機名稱爲:
TwoByHalfPrn - string - User - (no value)
我是否正確理解您使用.NET數據綁定將打印機設置控件保存到應用程序設置?如果是這樣,我想默認情況下,設置對象不會更新,直到控件被驗證(即焦點離開控件時)。您可以從DataBindings下的屬性表訪問的高級對話框中將其從OnValidation更改爲OnPropertyChanged。 – adv12
我不知道你的問題的答案。我在屬性表中看不到DataBindings。 –
好吧,也許我誤解了。 – adv12