一个看似简单的DiaLog窗体按钮焦点问题。

xiangyanpijiu 2012-03-02 02:02:44
自制了一个DiaLog窗体,代码中使用:
MsgBoxDialog warningMsg = new MsgBoxDialog(message1, message2, Title, Mode);
来显示DiaLog窗体。

Dialog窗体里重写了构造方法:
public MsgBoxDialog(string message1, string message2, string Title, int Mode)
: this()
{
........
........
this.Location = new System.Drawing.Point(this.Location.X, this.Location.Y - (RowNum * 27 - 27) / 2);
this.Height = 200 + RowNum * 27 - 27;
this.Width = 700;
this.btnNo.Location = new System.Drawing.Point(this.Width / 2 + 20, this.btnNo.Location.Y + RowNum * 27 - 35);
this.btnYes.Location = new System.Drawing.Point(this.Width / 2 - this.btnYes.Width - 20, this.btnYes.Location.Y + RowNum * 27 - 35);

btnNo.Focus();
}

只想实现让Dialog窗体显示时,btnNo默认获得焦点。但是现在情况是,有时btnNo获得焦点,有时btnYes获得焦点,每次不固定;

试了各种各样方法:
OnLoad(),Shown(),Activated()里面设置TabIndex,并且设置 btnNo.Focus();
还有什么AcceptButton等等,全都试过了,依然是有时btnNo获得焦点,有时btnYes获得焦点,每次不固定;

各位大侠给看看出出主意。
...全文
227 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiangyanpijiu 2012-03-02
  • 打赏
  • 举报
回复
解决了。还是代码不规范的问题。。结贴。。。
xiangyanpijiu 2012-03-02
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sinitek123 的回复:]
Dialog窗体 activate事件 btnNo.Focus(); 应该可以的 你可以加个messagebox输出信息看有没有执行到这里
[/Quote]

走到了。并且这样试了很多次了。依然还是不行。
在Shown()时间里也试了。可以走到,但最后显示的结果却是还是有时候btnYes,有时候btnNo
sinitek123 2012-03-02
  • 打赏
  • 举报
回复
Dialog窗体 activate事件 btnNo.Focus(); 应该可以的 你可以加个messagebox输出信息看有没有执行到这里
xiangyanpijiu 2012-03-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 caozhy 的回复:]
btnNo.SetFocus();
[/Quote]
C#中没有这个方法
threenewbee 2012-03-02
  • 打赏
  • 举报
回复
btnNo.SetFocus();

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧