是否有一种快速方式或软件来查看C#窗口形式事件的触发顺序?
目前,没有任何方法或软件可以知道所有事件的顺序以及在是否有一种快速方式或软件来查看C#窗口形式事件的触发顺序?,c#,events,C#,Events,目前,没有任何方法或软件可以知道所有事件的顺序以及在C#Windows窗体中触发的条件。我需要一个一个地试一下。有没有办法快速了解事件的触发顺序和条件?正如我理解你的问题,你可能会问的问题叫做StackTrace C#有一个名为System.Diagnostics.StackTrace的类,它表示堆栈跟踪,它是一个或多个堆栈帧的有序集合 以下是Microsoft的一个示例,说明如何使用它: class StackTraceSample { [STAThread] static v
C#
Windows窗体中触发的条件。我需要一个一个地试一下。有没有办法快速了解事件的触发顺序和条件?正如我理解你的问题,你可能会问的问题叫做StackTrace
C#有一个名为System.Diagnostics.StackTrace
的类,它表示堆栈跟踪,它是一个或多个堆栈帧的有序集合
以下是Microsoft的一个示例,说明如何使用它:
class StackTraceSample
{
[STAThread]
static void Main(string[] args)
{
StackTraceSample sample = new StackTraceSample();
try
{
sample.MyPublicMethod();
}
catch (Exception)
{
// Create a StackTrace that captures
// filename, line number, and column
// information for the current thread.
StackTrace st = new StackTrace(true);
for(int i =0; i< st.FrameCount; i++ )
{
// Note that high up the call stack, there is only
// one stack frame.
StackFrame sf = st.GetFrame(i);
Console.WriteLine();
Console.WriteLine("High up the call stack, Method: {0}",
sf.GetMethod());
Console.WriteLine("High up the call stack, Line Number: {0}",
sf.GetFileLineNumber());
}
}
}
public void MyPublicMethod ()
{
MyProtectedMethod();
}
protected void MyProtectedMethod ()
{
MyInternalClass mic = new MyInternalClass();
mic.ThrowsException();
}
class MyInternalClass
{
public void ThrowsException()
{
try
{
throw new Exception("A problem was encountered.");
}
catch (Exception e)
{
// Create a StackTrace that captures filename,
// line number and column information.
StackTrace st = new StackTrace(true);
string stackIndent = "";
for(int i =0; i< st.FrameCount; i++ )
{
// Note that at this level, there are four
// stack frames, one for each method invocation.
StackFrame sf = st.GetFrame(i);
Console.WriteLine();
Console.WriteLine(stackIndent + " Method: {0}",
sf.GetMethod() );
Console.WriteLine( stackIndent + " File: {0}",
sf.GetFileName());
Console.WriteLine( stackIndent + " Line Number: {0}",
sf.GetFileLineNumber());
stackIndent += " ";
}
throw e;
}
}
}
}
类堆栈跟踪示例
{
[状态线程]
静态void Main(字符串[]参数)
{
StackTraceSample样本=新的StackTraceSample();
尝试
{
sample.MyPublicMethod();
}
捕获(例外)
{
//创建一个StackTrace来捕获
//文件名、行号和列
//当前线程的信息。
StackTrace st=新的StackTrace(真);
对于(int i=0;i
但由于优化过程中发生的代码转换,StackTrace可能不会报告预期的那么多方法调用
这是我在Google上搜索windows窗体事件顺序时的第一个结果我投票将这个问题作为离题题关闭,因为一个非常基本的互联网搜索会立即找到非常详细的答案。链接不错,但不是问题的答案。他想知道所有被解雇的事件。