我试图传递价值"测试"从类WorkspaceNoteUpdateComponent内部和方法noteUpdateControl_AddNoteClicked中,到另一个类NoteUpdateUserControl和方法buttonAdd_Click。然而,出于某种原因,似乎"测试"的价值。在第一种方法中永远不会让它传递出去。我做错了什么?
类WorkspaceNoteUpdateComponent,方法noteUpdateControl_AddNoteClicked
public class WorkspaceNoteUpdateComponent : IWorkspaceComponent2
{
private IRecordContext _recContext;
public static string CustAddrCity = "SOMETHING";
public Control GetControl()
{
NoteUpdateUserControl noteUpdateControl = new NoteUpdateUserControl();
noteUpdateControl.AddNoteClicked += new NoteUpdateUserControl.AddNoteHandler(noteUpdateControl_AddNoteClicked);
return noteUpdateControl;
}
public string noteUpdateControl_AddNoteClicked(ref string CustAddrCity)
{
IContact contactRecord = _recContext.GetWorkspaceRecord(RightNow.AddIns.Common.WorkspaceRecordType.Contact) as IContact;
CustAddrCity = "test";
_recContext.RefreshWorkspace();
return CustAddrCity;
}
}
Class NoteUpdateUserControl with method buttonAdd_Click
public partial class NoteUpdateUserControl : UserControl
{
public delegate string AddNoteHandler(ref string custAddrCity);
public event AddNoteHandler AddNoteClicked;
string _boxtext = WorkspaceNoteUpdateComponent.CustAddrCity;
public NoteUpdateUserControl()
{
InitializeComponent();
}
private void buttonAdd_Click(object sender, EventArgs e)
{
if (AddNoteClicked != null)
{
MessageBox.Show(_boxtext);
}
}
*** UPDATE从字符串_boxtext中删除了readonly,因为这不是代码的预期部分****
答案 0 :(得分:0)
您是否在其他任何地方触发了您的活动?
您的代码缺少事件触发:
if (AddNoteClicked != null)
{
string _eventBoxText = _boxtext;
AddNoteClicked(ref _eventBoxText); //<-- YOU NEED THIS LINE TO TRIGGER YOUR EVENT
MessageBox.Show(_eventBoxText );
}
注意我已将_boxtext
替换为_eventBoxText
,_boxtext
只读取would not be acceptable as ref
argument in any context other method than the class constructor。