winform窗体怎么获得焦点

winform窗体怎么获得焦点,第1张

代码如下:

//调用API

[SystemRuntimeInteropServicesDllImport("user32dll", CharSet = SystemRuntimeInteropServicesCharSetAuto, ExactSpelling = true)]

public static extern IntPtr GetForegroundWindow(); //获得本窗体句柄

[SystemRuntimeInteropServicesDllImport("user32dll", EntryPoint = "SetForegroundWindow")]

public static extern bool SetForegroundWindow(IntPtr hWnd);//设置此窗体为活动窗体

//定义变量,句柄类型

public IntPtr han;

在窗体加载的时候给变量赋值,即将当前窗体的句柄赋给变量:

代码如下:

void Form1_Load(object sender, EventArgs e)

{

han = thisHandle;

timer2Enabled = true;

}

//加载一个定时器控件,验证当前WINDOWS句柄是否和本窗体的句柄一样,如果不一样,则激活本窗体

代码如下:

private void timer2_Tick(object sender, EventArgs e)

{

if (han != GetForegroundWindow())

{

SetForegroundWindow(han);

}

}

其实不管用哪种方法,其原理都是跟body onload()大同小异的,而其中body onload()才是最简便快捷的方式:

<body onload="documentgetElementById("baidubox")focus();">

或者把onload单独脱离出来:

<script>

windowonload = function() {documentgetElementById("baidubox")focus();}

</script>

1警告消息框alert

alert

方法有一个参数,即希望对用户显示的文本字符串。该字符串不是

HTML

格式。该消息框提供了一个“确定”按钮让用户关闭该消息框,并且该消息框是模式对话框,也就是说,用户必须先关闭该消息框然后才能继续进行 *** 作。

windowalert("欢迎!请按“确定”继续。");

2确认消息框confirm

使用确认消息框可向用户问一个“是-或-否”问题,并且用户可以选择单击“确定”按钮或者单击“取消”按钮。confirm

方法的返回值为

true

false。该消息框也是模式对话框:用户必须在响应该对话框(单击一个按钮)将其关闭后,才能进行下一步 *** 作。

var

truthBeTold

=

windowconfirm("单击“确定”继续。单击“取消”停止。");

if

(truthBeTold)

{

windowalert("欢迎访问我们的

Web

页!");

}

else

windowalert("再见啦!");

3提示消息框prompt

提示消息框提供了一个文本字段,用户可以在此字段输入一个答案来响应您的提示。该消息框有一个“确定”按钮和一个“取消”按钮。如果您提供了一个辅助字符串参数,则提示消息框将在文本字段显示该辅助字符串作为默认响应。否则,默认文本为

"<undefined>"。

与alert(

)

confirm(

)

方法类似,prompt

方法也将显示一个模式消息框。用户在继续 *** 作之前必须先关闭该消息框

var

theResponse

=

windowprompt("欢迎?","请在此输入您的姓名。");

输入焦点函数是

focus()

不知道是不是我说的不清楚是先获取鼠标当前焦点所在的进程然后去获取该进程的焦点代码如下:

int calcID;

IntPtr hwnd = GetForegroundWindow();

uint pID = GetWindowThreadProcessID(hwnd, out calcID);

if (AttachThreadInput(pID, GetCurrentThreadId(), true))

{

IntPtr hFocus = GetFocus();

for (int i = 0; i < textLength;i++ )

{

char[] newText = textToCharArray();

SendMessage(hFocus, 0x0102,newText[i], 0);

}

}

this是什么呀?默认应该是window对象,火狐对windowfocus()不感冒,可能是出于安全上的顾虑所以不允许脚本这样控制窗口,但是对页面中但凡可以获得焦点的dom对象都是有效的,所以你可以考虑用页面中的某个dom来代替window

ps:如果你的this不是指向window对象的话就当我是在废话好了,呵呵

以上就是关于winform窗体怎么获得焦点全部的内容,包括:winform窗体怎么获得焦点、javascript问题页面加载完成后搜索框获得焦点、JS表单d出对话框函数是什么获得输入焦点函数是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9636955.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存