我写了一个类如何在类中获取窗口句柄( form1窗体) 不是很懂能不能写详细点 .......

 我来答
匿名用户
2011-08-29
展开全部
[DllImport("user32.dll", EntryPoint = "FindWindow", CharSet = CharSet.Auto)]
static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

/// <summary>
/// 获取有名字窗体句柄
/// </summary>
/// <param name="caption">窗体名</param>
/// <param name="delay">循环查询次数</param>
/// <param name="maxTries">停顿时间</param>
/// <returns>句柄 IntPtr</returns>
static IntPtr FindMainWindowHandle(String caption,int delay,int maxTries)
{
IntPtr mwh = IntPtr.Zero;
bool foundWindow = false;
int attempts = 0;

do
{
mwh = FindWindow(null, caption);
if (mwh == IntPtr.Zero)
{
Console.WriteLine("Form not yet found\n");
Thread.Sleep(maxTries);
++attempts;
}
else
{
Console.WriteLine("Form has been found");
foundWindow = true;
}
}
while(!foundWindow && attempts<delay);

if(mwh != IntPtr.Zero)
return mwh;
else
throw new Exception("Coule not find Main Window");

//调用FindMainWindowHandle()方法以获取窗体句柄,例:
IntPtr wHandle= FindMainWindowHandle("窗体名",10,100);
Console.WriteLine("窗体句柄: " + wHandle);
runcr
2011-08-31 · 超过46用户采纳过TA的回答
知道小有建树答主
回答量:159
采纳率:0%
帮助的人:98.8万
展开全部
最简单的方法,调用类的时候把窗体的实例传过去
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
带你头豁a9
2011-09-05
知道答主
回答量:33
采纳率:0%
帮助的人:26.6万
展开全部
哎呀 这个简单 在窗体代码中想类中传递窗体本身,就可以了,所有关于这个窗体的信息,你在类里面都可以获取到,但是不一定能更改。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式