65.9K
CodeProject 正在变化。 阅读更多。
Home

马拉雅拉姆语屏幕键盘

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.76/5 (10投票s)

2014年6月2日

CPOL

2分钟阅读

viewsIcon

19213

downloadIcon

842

马拉雅拉姆语的屏幕键盘

引言

当我需要用马拉雅拉姆语写一篇作文时,我发现用键盘打字很困难。因此,屏幕键盘的想法由此产生。我曾经在键盘无法工作时使用过屏幕键盘,所以我决定用马拉雅拉姆语编写一个屏幕键盘。

背景

当我开始编写代码时,我需要马拉雅拉姆语字母的 Unicode 代码。我在这个链接找到了它。

Using the Code

首先,我使用 Visual C# - Windows Forms Application 创建了一个新项目,并通过拖放按钮设计了它的界面,如下所示

然后我为所有按钮赋予了值。可以使用“\u”前缀将 Unicode 值赋予按钮,以指示编译器给定的值是 Unicode。

例如:马拉雅拉姆语字母“അ”的 Unicode 代码是“0D05”,在 C# 中必须表示为“\u0D05”。以下代码为按钮赋予 Unicode 值。

            button1.Text = "\u0D05";
            button2.Text = "\u0D06";
            button3.Text = "\u0D07";
            button4.Text = "\u0D08";
            button5.Text = "\u0D09";
            button6.Text = "\u0D0A";
            button7.Text = "\u0D0B";
            button8.Text = "\u0D0C";
            button9.Text = "\u0D0E";
            button10.Text = "\u0D0F";
            button11.Text = "\u0D10";
            button12.Text = "\u0D12";
            button13.Text = "\u0D13";
            button14.Text = "\u0D14";
            button15.Text = "\u0D3E";
            button16.Text = "\u0D3F";
            button17.Text = "\u0D40";
            button18.Text = "\u0D41";
            button19.Text = "\u0D42";
            button20.Text = "\u0D43";
            button22.Text = "\u0D46";
            button23.Text = "\u0D47";
            button24.Text = "\u0D48";
            button25.Text = "\u0D02";
            button26.Text = "\u0D1F";
            button27.Text = "\u0D1E";
            button28.Text = "\u0D1D";
            button29.Text = "\u0D1C";
            button30.Text = "\u0D1B";
            button31.Text = "\u0D1A";
            button32.Text = "\u0D19";
            button33.Text = "\u0D18";
            button34.Text = "\u0D17";
            button35.Text = "\u0D16";
            button36.Text = "\u0D15";
            button37.Text = "\u0D26";
            button38.Text = "\u0D25";
            button39.Text = "\u0D24";
            button40.Text = "\u0D23";
            button41.Text = "\u0D22";
            button42.Text = "\u0D21";
            button43.Text = "\u0D20";
            button44.Text = "\u0D31";
            button45.Text = "\u0D30";
            button46.Text = "\u0D2F";
            button47.Text = "\u0D2E";
            button48.Text = "\u0D2D";
            button49.Text = "\u0D2C";
            button50.Text = "\u0D2B";
            button51.Text = "\u0D2A";
            button52.Text = "\u0D39";
            button53.Text = "\u0D28";
            button54.Text = "\u0D27";
            button55.Text = "\u0D38";
            button56.Text = "\u0D37";
            button57.Text = "\u0D36";
            button58.Text = "\u0D35";
            button59.Text = "\u0D34";
            button60.Text = "\u0D33";
            button61.Text = "\u0D32";
            button62.Text = "\u0D4D";
            button72.Text = "\u0D57";

在为所有按钮赋予 Unicode 值后,我们需要编写触发代码来捕获按钮点击及其操作。在这个应用程序中,所有按钮都需要相同的代码来触发。操作代码是

        void buttonClicked(object sender, EventArgs e)
        {
            Button button = sender as Button;
            SendKeys.Send(button.Text);
        }

buttonClicked()”函数会将Button的值发送到目标位置。当我点击值为“അ”的按钮时,该函数会将字母“അ”发送到目标位置。“SendKeys.Send()”函数用于将值发送到目标位置。它产生与在键盘上按下“അ”键相同的效果。

现在操作代码已经准备就绪。现在我们想将此操作添加到应用程序中的所有按钮。

EventHandler”类用于将操作函数添加到按钮。

            button1.Click += new EventHandler(buttonClicked);
            button2.Click += new EventHandler(buttonClicked);
            button3.Click += new EventHandler(buttonClicked);
            button4.Click += new EventHandler(buttonClicked);
            button5.Click += new EventHandler(buttonClicked);
            button6.Click += new EventHandler(buttonClicked);
            button7.Click += new EventHandler(buttonClicked);
            button8.Click += new EventHandler(buttonClicked);
            button9.Click += new EventHandler(buttonClicked);
            button10.Click += new EventHandler(buttonClicked);
            button11.Click += new EventHandler(buttonClicked);
            button12.Click += new EventHandler(buttonClicked);
            button13.Click += new EventHandler(buttonClicked);
            button14.Click += new EventHandler(buttonClicked);
            button15.Click += new EventHandler(buttonClicked);
            button16.Click += new EventHandler(buttonClicked);
            button17.Click += new EventHandler(buttonClicked);
            button18.Click += new EventHandler(buttonClicked);
            button19.Click += new EventHandler(buttonClicked);
            button20.Click += new EventHandler(buttonClicked);
            button22.Click += new EventHandler(buttonClicked);
            button23.Click += new EventHandler(buttonClicked);
            button24.Click += new EventHandler(buttonClicked);
            button25.Click += new EventHandler(buttonClicked);
            button26.Click += new EventHandler(buttonClicked);
            button27.Click += new EventHandler(buttonClicked);
            button28.Click += new EventHandler(buttonClicked);
            button29.Click += new EventHandler(buttonClicked);
            button30.Click += new EventHandler(buttonClicked);
            button31.Click += new EventHandler(buttonClicked);
            button32.Click += new EventHandler(buttonClicked);
            button33.Click += new EventHandler(buttonClicked);
            button34.Click += new EventHandler(buttonClicked);
            button35.Click += new EventHandler(buttonClicked);
            button36.Click += new EventHandler(buttonClicked);
            button37.Click += new EventHandler(buttonClicked);
            button38.Click += new EventHandler(buttonClicked);
            button39.Click += new EventHandler(buttonClicked);
            button40.Click += new EventHandler(buttonClicked);
            button41.Click += new EventHandler(buttonClicked);
            button42.Click += new EventHandler(buttonClicked);
            button43.Click += new EventHandler(buttonClicked);
            button44.Click += new EventHandler(buttonClicked);
            button45.Click += new EventHandler(buttonClicked);
            button46.Click += new EventHandler(buttonClicked);
            button47.Click += new EventHandler(buttonClicked);
            button48.Click += new EventHandler(buttonClicked);
            button49.Click += new EventHandler(buttonClicked);
            button50.Click += new EventHandler(buttonClicked);
            button51.Click += new EventHandler(buttonClicked);
            button52.Click += new EventHandler(buttonClicked);
            button53.Click += new EventHandler(buttonClicked);
            button54.Click += new EventHandler(buttonClicked);
            button55.Click += new EventHandler(buttonClicked);
            button56.Click += new EventHandler(buttonClicked);
            button57.Click += new EventHandler(buttonClicked);
            button58.Click += new EventHandler(buttonClicked);
            button59.Click += new EventHandler(buttonClicked);
            button60.Click += new EventHandler(buttonClicked);
            button61.Click += new EventHandler(buttonClicked);
            button62.Click += new EventHandler(buttonClicked);
            button72.Click += new EventHandler(buttonClicked);

buttonClicked()”函数作为通用的点击鼠标操作触发器添加到所有按钮。

现在我们可以使用此应用程序输入马拉雅拉姆语字母。但是,点击的按钮的值会收到应用程序本身。因此,我们可以使用此应用程序在其他任何地方输入。我们需要始终禁用此应用程序。如果这样做,我们就可以在活动窗口中输入马拉雅拉姆语字母。禁用窗口的代码如下

        protected override CreateParams CreateParams
        {
            get
            {
                CreateParams param = base.CreateParams;
                param.ExStyle |= 0x08000000;
                return param;
            }
        }

现在,我们的应用程序窗口始终处于非活动状态,我们可以将马拉雅拉姆语字母输入到活动应用程序中。

但是,新的问题是活动窗口可能会覆盖我们的应用程序。因此,我们需要始终拖动我们的应用程序以设置一个好的位置,以便同时查看活动应用程序和我们的键盘应用程序。因此,最好使我们的应用程序“始终置顶”。我们可以通过表单的“属性”框将“TopMost”属性设置为“true”来应用此属性。

是的,现在我们的应用程序将始终位于最顶层并且始终处于非活动状态。因此,我们可以轻松地输入马拉雅拉姆语字母。

希望你喜欢这篇文章。感谢阅读。

历史

  • 2014 年 6 月 2 日:初始版本
© . All rights reserved.