Вернуться   Компьютерный форум > Компьютеры > Программы > Программирование
 
 
Опции темы
Старый 15.03.2016, 14:08   #1 (ссылка)
Новичок
 
Аватар для Ikari
 
Регистрация: 21.04.2010
Сообщений: 7
Репутация: 0
По умолчанию Состояние индикаторов CapsLock и NumLock в StatusStrip (WindowsForms)

Добрый день.
Подскажите, пожалуйста, как возможно отобразить состояние индикаторов 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";
            }
        }
    }
}
Скажите, пожалуйста, что я делаю неправильно.
Спасибо!
Ikari вне форума  
Старый 16.03.2016, 10:16   #2 (ссылка)
Новичок
 
Аватар для Ikari
 
Регистрация: 21.04.2010
Сообщений: 7
Репутация: 0
По умолчанию

Проблема решена:
Код:
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;
}
Всем спасибо!
Ikari вне форума  
Ads
 


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Состояние HDD Roman05 Неисправности, настройка 2 06.01.2014 00:13
Состояние HDD Roman05 Железо 1 19.08.2013 16:14
Оцените состояние ПК programmist007 Железо 15 22.02.2013 22:43
Как определить состояние HDD WAIVER Железо 8 07.07.2011 23:44
Numlock при загрузке kana Windows XP 2 01.04.2010 19:38


Текущее время: 18:38. Часовой пояс GMT +4. Powered by vBulletin® Version 5.8.9
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd.