0

请告诉我,当 CAPS_LOCK 键启用时,我如何在StatusStrip中显示。我尝试按照示例进行操作: ,但我的应用程序中没有显示任何内容。我创建了一个新项目,添加了StripStatusLabel元素并尝试将任何信息带入其中。奇怪的是只在初始化方法中获得显示:

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 窗体。NetFramework 4.5 PS 抱歉这个愚蠢的问题 :)


更新: 在此处输入图像描述

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";
            }
        }
    }
}

但是输出不起作用。请告诉我我做错了什么

4

2 回答 2

0

// 大写锁定

toolStripStatusLabel1.Text=IsKeyLocked(Keys.CapsLock).toString();  

// 数字键盘(的第一个键

toolStripStatusLabel1.Text=IsKeyLocked(Keys.NumLock).toString();

将表单的 KeyPreview 属性设置为 true 编写此代码是表单的 key_down 事件

在此之前,您不能将文本放入 IntializeComponent 以外的函数中,因为您的表单的 KeyPreview 属性设置为 false 确保它确保按键事件正常工作

于 2016-03-15T07:18:04.820 回答
-1

我解决了它:

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;
}

谢谢大家!

于 2016-03-16T05:28:29.293 回答