KeyDown、KeyPress、または KeyUp に問題があります。private void Form1_KeyDown(object sender, KeyEventArgs e)
このコードを挿入するフォーム ( ) の新しい KeyDown を作成します。
if (e.KeyCode == Keys.A && e.Modifiers == Keys.Control)
MessageBox.Show("yes");
Ctrl + A を押すと、Yes メッセージの MessageBox が表示されます。
問題はこれです: 新しいプロジェクト ( Windows form application
) を作成すると完全に動作しますが、Windows フォーム アプリケーション (4201 コード行のようなもの) にコードを追加すると動作せず、何が問題なのかわかりません。この場合、何が問題なのかわかりません。
ライブラリのせいかもしれません:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Web.Script.Serialization;
using System.Windows.Forms;
using System.IO;
using System.Threading;
using System.Runtime.InteropServices;
using System.Media;
using System.Diagnostics;
using Microsoft.Win32;
using System.Net.Mail;
using System.Net;
または、私が Program.cs に追加したコードは、ユーザーがアプリを 1 回だけ起動できるようにします。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.Diagnostics;
using System.Threading;
namespace Programari
{
static class Program
{
[System.Runtime.InteropServices.DllImport("user32.dll")]
[return: System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.Bool)]
static extern bool SetForegroundWindow(IntPtr hWnd);
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
bool createdNew = true;
using (Mutex mutex = new Mutex(true, "MyApplicationName", out createdNew))
{
if (createdNew)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
else
{
Process current = Process.GetCurrentProcess();
if(Settings1.Default.rosaueng == 0)
MessageBox.Show("smartAppointment este deja deschis, ii gasesti iconita in System Icons !","EROARE DESCHIDERE APLICATIE");
else
MessageBox.Show("smartAppointment is already open, you can find him at System Icons !", "ERROR OPEN APPLICATION");
foreach (Process process in Process.GetProcessesByName(current.ProcessName))
{
if (process.Id != current.Id)
{
SetForegroundWindow(process.MainWindowHandle);
break;
}
}
}
}
}
}
}
ご存知でしたら教えてください。ありがとう !