TaskList.InvokeMethod(String, Object) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
呼叫指定的方法。
public:
virtual System::Object ^ InvokeMethod(System::String ^ methodName, System::Object ^ userData);
public virtual object InvokeMethod(string methodName, object userData);
abstract member InvokeMethod : string * obj -> obj
override this.InvokeMethod : string * obj -> obj
Public Overridable Function InvokeMethod (methodName As String, userData As Object) As Object
參數
- methodName
- String
要呼叫之方法的名稱。
- userData
- Object
任意使用者提供的物件。
傳回
使用者定義的物件。
範例
public override object InvokeMethod(string methodName, object userData)
{
Type taskListType = GetType();
MethodInfo methodInfo = taskListType.GetMethod(methodName);
if (methodInfo != null)
{
if (userData == null)
{
return methodInfo.Invoke(this, null);
} else
{
return methodInfo.Invoke(this, new object[] { userData });
}
} else
{
throw new InvalidOperationException("methodName : " + methodName +
"\n taskListType.Name " + taskListType.Name);
}
}
/// GetTaskItems() is called every time the context menu is invoked.
public override System.Collections.ICollection GetTaskItems() {
ArrayList items = new ArrayList();
Image imgAsk = rLoadImg.loadImgs(SystemIcons.Asterisk, 16);
Image imgErr = rLoadImg.loadImgs(SystemIcons.Error, 16);
items.Add(new MethodTaskItem(
"DisplayTime", // Method Name
"Show Time", // Menu item Text
"DemoCategory") // Category
);
Person prs = new Person(66, "Joe", "Smith");
MethodTaskItem mti_i = new MethodTaskItem(
"InvTst", // Method Name
"Invoke Test", // Menu item Text
sDemoCat, // Category
"Tool Tip:SC", // ToolTip non-functional
imgAsk, // Menu Icon
prs); // user data
mti_i.CausesNavigation = false;
traceMTI(mti_i);
items.Add(mti_i);
items.Add(new MethodTaskItem(
"ShowCnt", // Method Name
"Show Count", // Menu item Text
sDemoCat, // Category
"Tool Tip:SC", // ToolTip non-functional
mti_i.Image) // Menu Icon
);
public void myInvoke()
{
TaskList tl = getMyTaskList();
Person p = new Person(49, "Joe", "Smith");
tl.InvokeMethod("InvTst", p);
}
// DemoHierarchyInfo.InvTst()
//
public int InvTst(Person p)
{
Trace.WriteLine(" InvTst : person age: " + p._age.ToString()
+ "\n First name \"" + p._fName
+ "\"\n Last name " + p._LstName + "\"");
return SH._pCnt;
}
// method DemoHierarchyInfo.HierarchyDemoInfoTaskList.InvTst()
public void InvTst(object obj)
{
// Call parents InvTst (DemoHierarchyInfo.InvTst )
//
_owner.InvTst((Person)obj);
UpdateCurPers();
_owner.flush();
}
備註
只有在您在建 TaskList 置 時使用六個參數 MethodTaskItem 建構函式建立方法工作專案時,非 Null userData 參數才有效。