1. 程式人生 > >C# 獲取鍵盤輸入數字的值

C# 獲取鍵盤輸入數字的值

  /// <summary>
        /// 過載ProcessCmdKey事件
        /// </summary>
        /// <param name="msg"></param>
        /// <param name="keyData"></param>
        /// <returns></returns>
        protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
        {
            int index = dgvBasesList.CurrentCell.RowIndex;
            string text = Clipboard.GetText();
            EventArgs e = new EventArgs();
            if (keyData == Keys.Enter)
            {
                this.btnOK_Click(this, e);
            }
            else if (keyData == Keys.Down)
            {
                if (index < dgvBasesList.Rows.Count - 1)
                {
                    // dgvBasesList.Rows[index + 1].Selected =true ;
                    dgvBasesList.CurrentCell = dgvBasesList[0, index + 1];
                    txtNo.Text = (dgvBasesList.CurrentRow.Index + 1).ToString();
                }
            }
            else if (keyData == Keys.Up)
            {
                if (index > 0)
                {
                    dgvBasesList.CurrentCell = dgvBasesList[0, index - 1];
                    txtNo.Text = (dgvBasesList.CurrentRow.Index + 1).ToString();
                }
            }
            else if ((keyData >= Keys.D0 && keyData <= Keys.D9) || (keyData >= Keys.NumPad0 && keyData <= Keys.NumPad9))
            {
                string num = KeyCodeToStr(keyData);
                string num1 = num;
                int no = Int32.Parse(txtNo.Text.ToString() + num);
                if (no > dgvBasesList.Rows.Count - 1)
                {
                    if (Int32.Parse(num) > dgvBasesList.Rows.Count)
                    {
                        dgvBasesList.CurrentCell = dgvBasesList[0, dgvBasesList.Rows.Count - 1];
                        txtNo.Text = (dgvBasesList.Rows.Count - 1).ToString();
                    }
                    else if (Int32.Parse(num) > 0)
                    {
                        dgvBasesList.CurrentCell = dgvBasesList[0, Int32.Parse(num) - 1];
                        txtNo.Text = num.ToString();
                    }
                }
                else
                {
                    dgvBasesList.CurrentCell = dgvBasesList[0, no - 1];
                    txtNo.Text = no.ToString();
                }
            }
            return true;

        }
        [DllImport("user32.dll")]
        static extern int MapVirtualKey(uint uCode, uint uMapType);

        private static char KeyCodeToChar(Keys k)
        {
            int nonVirtualKey = MapVirtualKey((uint)k, 2);
            char mappedChar = Convert.ToChar(nonVirtualKey);
            return mappedChar;
        }
        public static string KeyCodeToStr(Keys k)
        {
            char mappedChar = KeyCodeToChar(k);
            string str = mappedChar.ToString();
            if (Char.IsWhiteSpace(mappedChar) || string.IsNullOrEmpty(str) || mappedChar == '\r' || mappedChar == '\n' || mappedChar == KeyCodeToChar(Keys.F1))
            {
                return k.ToString();
            }
            else
            {
                return str + "";
            }
        }

相關推薦

C# 獲取鍵盤輸入數字

  /// <summary>         /// 過載ProcessCmdKey事件         /// </summary>         /// <param name="msg"></param>      

c++獲取鍵盤輸入cin、scanf使用詳解

pan microsoft nbsp stdio.h c語言 多個 鍵盤輸入 獲取鍵盤輸入 int cin是c++標準,scanf是在c中使用的 1 #include<cstdio> 2 #include<iostream>

如何在Java中獲取鍵盤輸入

我們 比較 函數 姓名 ner clas exceptio 但是 put 1 程序開發過程中,需要從鍵盤獲取輸入值是常有的事,但Java它偏偏就沒有像c語言給我們提供的scanf(),C++給我們提供的cin()獲取鍵盤輸入值的現成函數!Java沒有提供這樣的函數也不代

java獲取鍵盤輸入數字,並進行排序

需求:由鍵盤輸入三個整數分別存入變數num1、num2、num3,對它們進行排序, 並且從小到大輸出 要求使用2種方法實現:一、使用if-else分支結構;二、使用java內建模組Arrays的排序方

再來練一遍,模擬鍵盤輸入數字,找出最大和最小

package yn.ngems.cn.util; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class InputUtil {  

JAVA中獲取鍵盤輸入的方法總結

鍵盤輸入 throws 應該 padding left 接收 [] util float Java程序開發過程中,需要從鍵盤獲取輸入值是常有的事,但Java它偏偏就沒有像c語言給我們提供的scanf(),C++給我們提供的cin()獲取鍵盤輸入值的現成函數!下面介紹三種解決

C#獲取文件MD5方法

pri throw exceptio cnblogs string ssa turn blog nbsp https://www.cnblogs.com/Ruiky/archive/2012/04/16/2451663.html private static str

Java基礎語法 - 獲取鍵盤輸入

1 package com.demo3; 2 import java.util.Scanner; 3 4 /* 5 * 使用 Scanner 獲取鍵盤輸入供程式使用 6 * 7 * 使用步驟: 8 * A:導包 9 * import java.util

C語言實驗——輸入數字星期,輸出英文(switch語句)

#include<stdio.h> int main() { int n; scanf("%d",&n); switch(n) { case 1: printf(“Monday”); break; case 2: printf(“Tuesday”); break; c

C++ 讀取鍵盤輸入(cin/cin.getline()/cin.get()/cin.clear())

1.cin C++ 使用cin可以方便的讀取鍵盤輸入的字元,例如: //test input

C#獲取當前時間毫秒

在.Net下DateTime.Ticks獲得的是個long型的時間整數,具體表示是至0001 年 1 月 1 日午夜 12:00:00 以來所經過時間以100納秒的數字。轉換為秒為Ticks/10000000,轉換為毫秒Ticks/10000。 如果要獲取從1970年1月1日至當前時間所經過的毫

ACMNO.3 有三個整數a b c,由鍵盤輸入,輸出其中的最大的數。 輸入 一行陣列,分別為a b c 輸出 a b c其中最大的數 樣例輸入 10 20 30 樣例輸出 30

基於平臺Dev-C++ 5.11 題目描述 有三個整數a b c,由鍵盤輸入,輸出其中的最大的數。 輸入 一行陣列,分別為a b c 輸出 a b c其中最大的數 樣例輸入 10 20 30 樣例輸出 30 提示 max ? if(a

C++從鍵盤輸入多行資料

遇到很多筆試題不是事先留好的介面寫函式,而需要自己從鍵盤輸入多行資料。 下面是利用C++類從鍵盤獲取資料: #include <iostream> using namespace std; class Node { public: int a;

1119-C語言實驗——輸入數字星期,輸出英文(switch語句)-JAVA

C語言實驗——輸入數字星期,輸出英文(switch語句) Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 從鍵盤上輸

關於python同時給多個變數從鍵盤輸入

這裡以一道題為例,輸入三角形的三邊長來判斷是怎樣的三角形。 由於老師要求使用input()函式,所以這裡說一下python的input()函式,當要給多個變數賦值時通常格式為a,b,c=map(int,input().split()),後面的這個split()函式是用於分割

彙編基礎練習題7:編寫輸入子程式,功能是從鍵盤輸入數字字元,利用程式得到對應的數值,並在主程式中驗證。

彙編基礎練習題7: 編寫輸入子程式,功能是從鍵盤輸入數字字元,利用程式得到對應的數值,並在主程式中驗證。 編譯工具:Masm for Windows 整合實驗環境2012.5 (附帶一個工具下載地址https://download.csdn.net/download/qq_36931

彙編基礎練習題6:從鍵盤輸入數字字元,利用程式得到對應的數值,在利用2中的輸出子程式,將得到的數值輸出。

彙編基礎練習題6: 從鍵盤輸入數字字元,利用程式得到對應的數值,在利用練習題2中的輸出子程式,將得到的數值輸出。 編譯工具:Masm for Windows 整合實驗環境2012.5 (附帶一個工具下載地址https://download.csdn.net/download/qq_3

c】【例3.5】求ax^2+bx+c=0方程的根。a,b,c鍵盤輸入,設b^2-4*a*c>0。

c #include<stdio.h> #include<math.h> int main() { double a,b,c,x1,x2,p,q,disc; printf("Please enter a,b,and c :"); //給

利用hashmap獲取鍵盤輸入字串中每個字元出現的次數

class hello { public static void main(String[] args) throws ParseException { Scanner sc = new Scanner(System.in); String s = sc.nextLine();