100分求助 C#中如何让控件失去焦点 谢谢大家我遇到一个问题,我响应TextBox的OnGotFocus事件,弹出一个模态对话框。但关闭这个对话框后,焦点又回到TextBox上。请问,如何能让textBox不自动获取焦点,或者调用函数强制让它失去焦点呢?谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 谢谢,可问题是,考虑到只有一个TextBox的情况呢 /// <summary> /// 設置控件焦點 /// </summary> /// <param name="page">要執行腳本的頁面,一般為本頁 This</param> /// <param name="eventMessage">控件ID</param> public static void SetFocus(System.Web.UI.Page page,string control_id) { string str_eventMessage="window.document.all."+control_id+".blur()"; page.RegisterStartupScript("ss","<script id=clientEventHandlersJS language=javascript>" +str_eventMessage+ "</script>"); } //調用方法 SetFocus(this,"control_id"); 嗯,谢谢楼上啊,但我的是windows form程序,不是asp.net的,现在正郁闷ing 用这个属性试试this.textBox1.Capture=false; 谢谢~~我试了,我写的是this.textBox1.Capture = true; //false我也试了然后第一次运行时,它就真的没有获得焦点啦~~这正是我想要的~~但是,把弹出的对话框关闭后,它还是获取焦点了 private void textBox1_GotFocus(object sender, System.EventArgs e) { MessageBox.Show("Thanks for cshmai", "test"); } private void Form1_Load(object sender, System.EventArgs e) { this.textBox1.Capture = false; }就是希望MessageBox关闭后,textBox1不要获得焦点 把焦点给其他控件,你可以把控件藏起来,譬如textbox的后面,这样界面上看不出来,-_-! 如果窗口就一个控件private void textBox1_GotFocus(object sender, EventArgs e) { MessageBox.Show("Thanks for cshmai", "test"); }就是一个死循环了。如果不弹出 msgbox 可以private void textBox1_GotFocus(object sender, EventArgs e) { this.Focus(); } 我现在就是死循环啊,555。我加上了 if(TextBox.MouseButtons!= MouseButtons.Left) { return; }倒是不会死循环了,但是就不能触发GotFocus事件了,只能出去到别处再进来,要是一个控件就连切都没地方切了。还有还有,您调用的this.Focus();是让窗体获得焦点么,我做的是基于对话框的程序,调用这句没用好像~~ 使用隐藏文本框textBox2; private void textBox1_GotFocus(object sender, System.EventArgs e) { MessageBox.Show("Thanks for cshmai", "test"); textBox2.Focus(); } private void Form1_Load(object sender, System.EventArgs e) { textBox2.Focus(); } 如果窗口就一个控件,你的要求应该没有办法做到,如果有其他控件,你可以把焦点设置到某一控件,或者使用下面的代码private void textBox1_Enter(object sender, System.EventArgs e){ MessageBox.Show(DateTime.Now.ToString()); textBox1.Enabled=false; textBox1.Enabled=true;} 在弹出模式窗口后面加上这一句this.Activate();就OK啦! 感谢楼上关注,但我试了,还是不行 private void textBox1_GotFocus(object sender, System.EventArgs e) { MessageBox.Show("test"); this.Activate(); }就是这段代码,前面响应的事件为this.textBox1.GotFocus += new System.EventHandler(this.textBox1_GotFocus);我想让它不反复探messagebox,但又要每次GotFocus时出来~~~再次谢您 private void textBox1_GotFocus(object sender, System.EventArgs e) { MessageBox.Show("Thanks for cshmai", "test"); this.textBox1.Capture = false; } private void Form1_Load(object sender, System.EventArgs e) { this.textBox1.Capture = false; }就是希望MessageBox关闭后,textBox1不要获得焦点 关注了 我只想到了 多方一个control 然后 模态关闭后 让隐藏的这个得到焦点 To: 01070801(琪琪) 你知道this.textBox1.GotFocus += new System.EventHandler(this.textBox1_GotFocus);这个响应事件,在窗口加载显示的时候就触发这个事件了!你上面这一句写在什么地方的啊! 将onthercontrol.focus()和messagebox()交换一下位置就结了。先other.focus();然后MessageBox.show("");OK 使用下面的代码private void textBox1_Enter(object sender, System.EventArgs e){ textBox1.Enabled=false; MessageBox.Show(DateTime.Now.ToString()); textBox1.Enabled=true;} 感谢这么多热心人啊~~net_boy(小明):我好像也试了,被隐藏的控件好像获得不了焦点了就,另外这样写技巧性代码会被经理骂的,Thank you all the samegj121(男儿当自强):那句话就写在InitializeComponent()中,自动生成的那里。好像就是加载时就调用了。不过我用if(TextBox.MouseButtons!= MouseButtons.Left){return;}在前面先判断一下,就不会在加载时进去了,但新问题又出了,关闭对话框后textBox1仍然获取着焦点,但就不能触发GotFocus了,除非出去再进来,做不到“要每次GotFocus时出来”了。To XuDunYu(西门吹雪):嗯那,但要是只有一个Control没有other怎么办啊~~To xujiaoxiang() :不行不行,我之所以非要响应GotFocus这么恶心的接口,其实响应Click不就成了么……但是,我写的程序要在windows ce和xp都能运行的,就是说用的compact framework,而且要用1.1版本的。所以只好响应GotFocus了,我试着响应Click或者mousedown什么的,但怎么按鼠标都不响应的。To fanjiyong000:我正在尝试您的代码~~ To fanjiyong000:我记得这个代码我写过……也是反复弹dialog this.Activate();MessageBox.Show("xxxx");这样应该行了吧! private void textBox1_GotFocus(object sender, System.EventArgs e){textBox1.Enabled=false;MessageBox.Show(DateTime.Now.ToString());textBox1.Enabled=true;} 我刚试完啦,第一下成,可后来又是反复出来了……555,有没有MFC那样的失去焦点的函数啊 回复 xujiaoxiang() Thanks!我就用这办法了,如何结贴啊~~ document.frmUpload.submit()提示 ‘’为空或不是对象 新手请教关于继承的问题 一個轉換的問題 求缓存方案 线程资源释放问题 求助!C#对word的操作,将datagrid的数据保存的word文档的模板中! 求助:那位大侠能帮小弟把合众打表的例子程序转成c#在asp.net下的应用 未处理的“System.Data.SqlClient.SqlException”类型的异常出现在 system.data.dll 中。这是什么错误啊 遇到一个很奇怪的问题,求解答 帮忙看一段代码,我是新手,看不懂!!(C#) 图像扫描 求c#版的access数据库访问类
/// <summary>
/// 設置控件焦點
/// </summary>
/// <param name="page">要執行腳本的頁面,一般為本頁 This</param>
/// <param name="eventMessage">控件ID</param> public static void SetFocus(System.Web.UI.Page page,string control_id)
{
string str_eventMessage="window.document.all."+control_id+".blur()";
page.RegisterStartupScript("ss","<script id=clientEventHandlersJS language=javascript>" +str_eventMessage+ "</script>");
} //調用方法
SetFocus(this,"control_id");
this.textBox1.Capture=false;
我试了,我写的是
this.textBox1.Capture = true; //false我也试了
然后第一次运行时,它就真的没有获得焦点啦~~这正是我想要的~~但是,把弹出的对话框关闭后,它还是获取焦点了 private void textBox1_GotFocus(object sender, System.EventArgs e)
{
MessageBox.Show("Thanks for cshmai", "test");
} private void Form1_Load(object sender, System.EventArgs e)
{
this.textBox1.Capture = false;
}就是希望MessageBox关闭后,textBox1不要获得焦点
private void textBox1_GotFocus(object sender, EventArgs e)
{
MessageBox.Show("Thanks for cshmai", "test");
}
就是一个死循环了。
如果不弹出 msgbox 可以
private void textBox1_GotFocus(object sender, EventArgs e)
{
this.Focus();
}
我加上了
if(TextBox.MouseButtons!= MouseButtons.Left)
{
return;
}
倒是不会死循环了,但是就不能触发GotFocus事件了,只能出去到别处再进来,要是一个控件就连切都没地方切了。还有还有,您调用的
this.Focus();
是让窗体获得焦点么,我做的是基于对话框的程序,调用这句没用好像~~
private void textBox1_GotFocus(object sender, System.EventArgs e)
{
MessageBox.Show("Thanks for cshmai", "test");
textBox2.Focus();
} private void Form1_Load(object sender, System.EventArgs e)
{
textBox2.Focus();
}
private void textBox1_Enter(object sender, System.EventArgs e)
{
MessageBox.Show(DateTime.Now.ToString());
textBox1.Enabled=false;
textBox1.Enabled=true;
}
this.Activate();
就OK啦!
private void textBox1_GotFocus(object sender, System.EventArgs e)
{
MessageBox.Show("test");
this.Activate();
}
就是这段代码,前面响应的事件为
this.textBox1.GotFocus += new System.EventHandler(this.textBox1_GotFocus);我想让它不反复探messagebox,但又要每次GotFocus时出来~~~再次谢您
{
MessageBox.Show("Thanks for cshmai", "test");
this.textBox1.Capture = false;
} private void Form1_Load(object sender, System.EventArgs e)
{
this.textBox1.Capture = false;
}就是希望MessageBox关闭后,textBox1不要获得焦点
你知道
this.textBox1.GotFocus += new System.EventHandler(this.textBox1_GotFocus);
这个响应事件,在窗口加载显示的时候就触发这个事件了!
你上面这一句写在什么地方的啊!
先other.focus();
然后MessageBox.show("");
OK
private void textBox1_Enter(object sender, System.EventArgs e)
{
textBox1.Enabled=false;
MessageBox.Show(DateTime.Now.ToString());
textBox1.Enabled=true;
}
我好像也试了,被隐藏的控件好像获得不了焦点了就,另外这样写技巧性代码会被经理骂的,Thank you all the samegj121(男儿当自强):
那句话就写在InitializeComponent()中,自动生成的那里。好像就是加载时就调用了。不过我用
if(TextBox.MouseButtons!= MouseButtons.Left)
{
return;
}
在前面先判断一下,就不会在加载时进去了,但新问题又出了,关闭对话框后textBox1仍然获取着焦点,但就不能触发GotFocus了,除非出去再进来,做不到“要每次GotFocus时出来”了。To XuDunYu(西门吹雪):
嗯那,但要是只有一个Control没有other怎么办啊~~To xujiaoxiang() :
不行不行,我之所以非要响应GotFocus这么恶心的接口,其实响应Click不就成了么……但是,我写的程序要在windows ce和xp都能运行的,就是说用的compact framework,而且要用1.1版本的。所以只好响应GotFocus了,我试着响应Click或者mousedown什么的,但怎么按鼠标都不响应的。To fanjiyong000:
我正在尝试您的代码~~
MessageBox.Show("xxxx");
这样应该行了吧!
{
textBox1.Enabled=false;
MessageBox.Show(DateTime.Now.ToString());
textBox1.Enabled=true;
}
Thanks!
我就用这办法了,如何结贴啊~~