我有一个用户控件加载到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