Ich habe mir im BlockStyler eine C# Klasse Liste.cs und die Liste.dlx Datei erzeugt.
Der Dialog enthält eine Liste, die ich mit Werten füllen möchte (z. B. Feature Liste).
Das Problem ist nun, diese Liste zu füllen. Für den ersten Versuch habe ich das direkt in Liste.cs codiert.
Wo schreibe ich diese Zuweisungen hin?
group0 = (NXOpen.BlockStyler.UIBlock)theDialog.TopBlock.FindBlock("group0");
list_box0 = (NXOpen.BlockStyler.ListBox)theDialog.TopBlock.FindBlock("list_box0");
PropertyList dialogProps = list_box0.GetProperties();
dialogProps.SetStrings("ListItems",stringArray);
Bim Erzeugen einer Instanz von Liste.cs werden im Konstruktor die Callback Handler erzeugt.
theDialogName = "Liste.dlx";
theDialog = theUI.CreateDialog(theDialogName);
theDialog.AddApplyHandler(new NXOpen.BlockStyler.BlockDialog.Apply(apply_cb));
theDialog.AddOkHandler(new NXOpen.BlockStyler.BlockDialog.Ok(ok_cb));
theDialog.AddUpdateHandler(new NXOpen.BlockStyler.BlockDialog.Update(update_cb));
theDialog.AddInitializeHandler(new NXOpen.BlockStyler.BlockDialog.Initialize(initialize_cb));
theDialog.AddDialogShownHandler(new NXOpen.BlockStyler.BlockDialog.DialogShown(dialogShown_cb));
Wenn die Zuweisungen vor "initialize_cb" auftauchen, bekomme ich eine NullReferenceException. Wenn sie nach Dialog.Show auftaucht, wird der Dialog nicht entsprechend geändert.
Bisher hat es nur funktioniert, wenn ich die Anweisung direkt in die Methode initialize_db geschrieben habe, also
public void initialize_cb()
{
try
{
group0 = (NXOpen.BlockStyler.UIBlock)theDialog.TopBlock.FindBlock("group0");
list_box0 = (NXOpen.BlockStyler.ListBox)theDialog.TopBlock.FindBlock("list_box0");
PropertyList dialogProps = list_box0.GetProperties();
dialogProps.SetStrings("ListItems",stringArray);
}
catch (Exception ex)
{
//---- Enter your exception handling code here -----
theUI.NXMessageBox.Show("Block Styler", NXMessageBox.DialogType.Error, ex.ToString());
}
}
Viele Grüße und frohe Ostern,
Erik
[Diese Nachricht wurde von e.gilsdorf am 21. Apr. 2011 editiert.]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP