StatusStrip Windows 窗体中 Num Caps Scroll Lock 的状态
State of Num Caps ScrollLock in StatusStrip WindowsForms
请告诉我,当 CAPS_LOCK 键启用时,我如何在 StatusStrip 中显示。
我试着按照这些例子:
one and two 但我的应用程序中没有显示任何内容。
我创建了一个新项目,添加了 StripStatusLabel 元素并尝试向其中添加任何信息。
奇怪的是display只在初始化方法中获取:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
toolStripStatusLabel1.Text = "111";
}
}
但在其他方法中它不起作用。
using System.Diagnostics;
namespace WindowsFormsApplication3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
//toolStripStatusLabel1.Text = "111";
}
public void Form2_KeyDown(object sender, KeyEventArgs e)
{
Debug.Write("123");
toolStripStatusLabel1.Text = "222";
}
}
}
Windows 表格。网络框架 4.5
P.S。抱歉愚蠢的问题:)
更新:
enter image description here
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Diagnostics;
namespace WindowsFormsApplication3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
KeyDown += tst;
}
public void TextBoxTest()
{
textBox1.Text = "onetwo";
}
private void tst(object sender, KeyEventArgs e)
{
if ((e.KeyCode & Keys.KeyCode) == Keys.CapsLock)
{
if (Control.IsKeyLocked(Keys.CapsLock))
toolStripStatusLabel1.Text = "Caps";
}
}
}
}
但是输出不起作用。
请告诉我我做错了什么
// 大写锁定
toolStripStatusLabel1.Text=IsKeyLocked(Keys.CapsLock).toString();
// 数字锁定
toolStripStatusLabel1.Text=IsKeyLocked(Keys.NumLock).toString();
将您的表单的 KeyPreview 属性 设置为 true 编写此代码是您表单的 key_down 事件
在此之前,您不能将文本放入 IntializeComponent 以外的函数中,因为您的表单的 KeyPreview 属性 设置为 false 确保它确保按下事件有效
我解决了:
protected override void WndProc(ref Message m)
{
base.WndProc(ref m);
capsStatusLabel.ForeColor = IsKeyLocked(Keys.CapsLock) ? statusStrip1.ForeColor : statusStrip1.BackColor;
numStatusLabel.ForeColor = IsKeyLocked(Keys.NumLock) ? statusStrip1.ForeColor : statusStrip1.BackColor;
}
谢谢大家!
请告诉我,当 CAPS_LOCK 键启用时,我如何在 StatusStrip 中显示。 我试着按照这些例子: one and two 但我的应用程序中没有显示任何内容。 我创建了一个新项目,添加了 StripStatusLabel 元素并尝试向其中添加任何信息。 奇怪的是display只在初始化方法中获取:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
toolStripStatusLabel1.Text = "111";
}
}
但在其他方法中它不起作用。
using System.Diagnostics;
namespace WindowsFormsApplication3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
//toolStripStatusLabel1.Text = "111";
}
public void Form2_KeyDown(object sender, KeyEventArgs e)
{
Debug.Write("123");
toolStripStatusLabel1.Text = "222";
}
}
}
Windows 表格。网络框架 4.5 P.S。抱歉愚蠢的问题:)
更新: enter image description here
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Diagnostics;
namespace WindowsFormsApplication3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
KeyDown += tst;
}
public void TextBoxTest()
{
textBox1.Text = "onetwo";
}
private void tst(object sender, KeyEventArgs e)
{
if ((e.KeyCode & Keys.KeyCode) == Keys.CapsLock)
{
if (Control.IsKeyLocked(Keys.CapsLock))
toolStripStatusLabel1.Text = "Caps";
}
}
}
}
但是输出不起作用。 请告诉我我做错了什么
// 大写锁定
toolStripStatusLabel1.Text=IsKeyLocked(Keys.CapsLock).toString();
// 数字锁定
toolStripStatusLabel1.Text=IsKeyLocked(Keys.NumLock).toString();
将您的表单的 KeyPreview 属性 设置为 true 编写此代码是您表单的 key_down 事件
在此之前,您不能将文本放入 IntializeComponent 以外的函数中,因为您的表单的 KeyPreview 属性 设置为 false 确保它确保按下事件有效
我解决了:
protected override void WndProc(ref Message m)
{
base.WndProc(ref m);
capsStatusLabel.ForeColor = IsKeyLocked(Keys.CapsLock) ? statusStrip1.ForeColor : statusStrip1.BackColor;
numStatusLabel.ForeColor = IsKeyLocked(Keys.NumLock) ? statusStrip1.ForeColor : statusStrip1.BackColor;
}
谢谢大家!