c#中怎么设置焦点?
程序默认焦点是一个按钮,我想改为一个标签,怎么办? 问题点数:100、回复次数:19Top
1 楼nga96(因为我笨,所以努力。陈勇华)回复于 2004-12-04 19:25:54 得分 10
this.controls.focus()
controls就是你要的控件名,接分啦Top
2 楼brightheroes(在地狱中仰望天堂)回复于 2004-12-04 19:30:11 得分 5
重新设置一下你的控件的TabInde属性吧Top
3 楼snowfeild(雪域)回复于 2004-12-04 19:40:59 得分 5
标签是不能获得焦点的,即使你把标签的TabIndex设置为0,也不行。焦点会自动转到TabIndex为1的控件。Top
4 楼yanransoft()回复于 2004-12-04 19:54:20 得分 5
标签是不能获得焦点的Top
5 楼OneDotRed(武装到眼神)回复于 2004-12-04 20:08:30 得分 5
如楼上们所说的,label是不可focus的,如button,textbox等可以
就是focus()方法Top
6 楼lxcc()回复于 2004-12-04 20:21:22 得分 0
或者用TextBox设置外观后模拟一个LabelTop
7 楼xjjdanran(何流)回复于 2004-12-04 20:24:47 得分 0
MarkTop
8 楼lijie7552()回复于 2004-12-04 21:33:36 得分 0
把button外观设置一下就行了啊!Top
9 楼xjaifly(tiantian)回复于 2004-12-04 22:04:15 得分 0
找MSDN里面 你想看的控件的帮助!Top
10 楼xinbin1122(我喜欢这个奇怪的世界)回复于 2004-12-04 22:26:02 得分 0
Button1.focus();Top
11 楼cnhgj(戏子) (没时间练太极)回复于 2004-12-04 22:26:31 得分 0
在窗口上捕获回车消息。然后激活。。或直接改样式方便Top
12 楼tmp1804()回复于 2004-12-05 10:55:50 得分 0
nonono,楼主你是Web程序么?Top
13 楼ClampHammer(Reading,thinking and coding)回复于 2004-12-05 11:57:21 得分 0
yourLabel.Focus()Top
14 楼peng1014()回复于 2004-12-05 12:05:08 得分 0
markTop
15 楼zhzuo(秋枫)回复于 2004-12-05 14:31:41 得分 10
http://blog.csdn.net/zhzuo/archive/2004/05/31/22036.aspxTop
16 楼ly00(明日杀手)回复于 2004-12-06 22:08:22 得分 0
是这样的,写一个小游戏,想用四个光标键控制方向,焦点位于buttons,textbox之类的控件时
无法自己获得这四个键的事件啊。Top
17 楼zhangjianke629(Jackzhang)回复于 2004-12-06 22:49:01 得分 30
自定义一个标签:
public enum VAlign
{
Top, Middle, Bottom
}
// Horizontal alignment
public enum HAlign
{
Left, Middle, Right
}
public class MyLable : System.Windows.Forms.Control
{
// Internal storage for properties
private VAlign vrtAlign = VAlign.Middle;
private HAlign hrzAlign = HAlign.Middle;
private BorderStyle bdrStyle = BorderStyle.None;
// Constructor
public MyLable()
{
InitializeComponent();
}
// Dispose
protected override void Dispose( bool disposing )
{
base.Dispose( disposing );
}
#region Component Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
}
#endregion
// VAlign property
public VAlign VAlign
{
get { return VAlign; }
set
{
vrtAlign = value;
Invalidate();
}
}
// HAlign property
public HAlign HAlign
{
get { return HAlign; }
set
{
hrzAlign = value;
Invalidate();
}
}
// BorderStyle Property
public BorderStyle BorderStyle
{
get { return bdrStyle; }
set
{
bdrStyle = value;
Invalidate();
}
}
// Text property
public override string Text
{
// get {} function is provided by base class
// and is not overridden
// Override set functionality to ensure that
// redraws take place
set
{
base.Text = value;
Invalidate();
}
}
protected override void OnPaint(PaintEventArgs pe)
{
int borderSpace=0;
Graphics gr = pe.Graphics;
using (Pen penDraw = new Pen(Color.Black))
{
switch(BorderStyle)
{
case BorderStyle.FixedSingle:
gr.DrawRectangle(penDraw, 0, 0, Width - 1, Height - 1);
borderSpace = 2;
break;
case BorderStyle.Fixed3D:
gr.DrawRectangle(penDraw, ClientRectangle);
borderSpace = 2;
break;
case BorderStyle.None:
// No border to draw
borderSpace = 0;
break;
}
SizeF sizeText = gr.MeasureString(Text, Font);
float posX=0.0F;
float posY=0.0F;
switch (hrzAlign)
{
case HAlign.Left:
posX = borderSpace;
break;
case HAlign.Middle:
posX = (Width-sizeText.Width)/2;
break;
case HAlign.Right:
posX = Width - sizeText.Width - borderSpace;
break;
}
switch (vrtAlign)
{
case VAlign.Top:
posY = borderSpace;
break;
case VAlign.Middle:
posY = (Height - sizeText.Height)/2;
break;
case VAlign.Bottom:
posY = Height - sizeText.Height - borderSpace;
break;
}
SolidBrush b = new SolidBrush(ForeColor);
gr.DrawString(Text, Font, b, posX, posY);
b.Dispose();
}
base.OnPaint(pe);
}
}Top
18 楼timiil(小华)回复于 2004-12-07 00:10:36 得分 30
是这样的,写一个小游戏,想用四个光标键控制方向,焦点位于buttons,textbox之类的控件时
无法自己获得这四个键的事件啊。
。。。
试试:
把窗体的KeyPreview属性设为true, 然后直接在窗体的KeyPress事件中干活。Top
19 楼ly00(明日杀手)回复于 2004-12-07 17:12:37 得分 0
谢谢大家,我再试试看。Top




