Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Состояние индикаторов CapsLock и NumLock в StatusStrip (Wind

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

DoctorIkari



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Добрый день.
Подскажите, пожалуйста, как возможно отобразить состояние индикаторов CAPS/NUM Lock в строке состояний StatusStrip Windows Forms.
Пытался действовать исходя из примеров:
раз, два, однако в приложении ничего не отображается.
Создал новый проект, добавил элемент 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";
        }
    }
}

Вывод не происходит ни в элемент StripStatusLabel, ни в TextBox, ни в Output

Код:
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";
            }
        }
    }
}

 
Скажите, пожалуйста, что я делаю неправильно.
Спасибо!

Всего записей: 7 | Зарегистр. 21-04-2010 | Отправлено: 13:07 15-03-2016
DoctorIkari



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Проблема решена:

Код:
protected override void WndProc(ref Message m)
{
    base.WndProc(ref m);
    toolStripStatusLabel1.ForeColor = IsKeyLocked(Keys.CapsLock) ? statusStrip1.ForeColor : statusStrip1.BackColor;
    toolStripStatusLabel2.ForeColor = IsKeyLocked(Keys.NumLock) ? statusStrip1.ForeColor : statusStrip1.BackColor;
}

Всем спасибо!

Всего записей: 7 | Зарегистр. 21-04-2010 | Отправлено: 09:17 16-03-2016
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Состояние индикаторов CapsLock и NumLock в StatusStrip (Wind


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru