求c#按钮精灵程序代码,就是股票软件中输入数字,右下角弹出的下拉列表(winform)

meiyu726 2008-07-31 06:09:03
求c#按钮精灵程序代码,就是股票软件主窗体中输入数字,右下角弹出的下拉列表(winform)
...全文
206 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
家鸣 2008-08-02
  • 打赏
  • 举报
回复
这样应该要用到键盘钩子,这里是一个简单的示例:

public struct KBDLLHOOKSTRUCT
{
public int vkCode;
int scanCode;
public int flags;
int time;
int dwExtraInfo;
}
public delegate IntPtr KeyboardHookProc(int nCode, IntPtr wParam, ref KBDLLHOOKSTRUCT lParam);
public KeyboardHookProc HookProc;

public static IntPtr hHookHandle = IntPtr.Zero;

public const int WH_MOUSE_LL = 14;
public const int WH_KEYBOARD_LL = 13;
private const int WM_KEYDOWN = 0x0100;
private const int WM_SYSKEYDOWN = 0x0104;

[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall, SetLastError = true)]
public static extern IntPtr SetWindowsHookEx(int idHook, KeyboardHookProc lpfn, IntPtr hMod, uint dwThreadId);

[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall, SetLastError = true)]
public static extern bool UnhookWindowsHookEx(IntPtr idHook);

[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall, SetLastError = true)]
private static extern IntPtr CallNextHookEx(IntPtr idHook, int nCode, IntPtr wParam, ref KBDLLHOOKSTRUCT lParam);

private void button1_Click(object sender, EventArgs e)
{
setKeyboardHook();
}

public void setKeyboardHook()
{
if (hHookHandle == IntPtr.Zero)
{
HookProc = new KeyboardHookProc(HookCallback);
hHookHandle = SetWindowsHookEx(WH_KEYBOARD_LL, HookProc, Marshal.GetHINSTANCE(Assembly.GetExecutingAssembly().GetModules()[0]), 0);
if (hHookHandle == IntPtr.Zero)
{
MessageBox.Show("SetWindowsHookEx Failed");
return;
}
button1.Text = "Uninstall Hook";

}
else
{
if (!UnhookWindowsHookEx(hHookHandle))
{
MessageBox.Show("UnhookWindowsHookEx Failed");
return;
}
hHookHandle = IntPtr.Zero;
button1.Text = "Install Hook";
}

}
private IntPtr HookCallback(int nCode, IntPtr wParam, ref KBDLLHOOKSTRUCT lParam)
{

if (nCode >= 0 && (wParam == (IntPtr)WM_KEYDOWN || wParam == (IntPtr)WM_SYSKEYDOWN)) //仅捕获KeyDown事件
{
//这里可以加上你窗体的操作代码。
MessageBox.Show("you press key: " + lParam.vkCode.ToString());
//return (IntPtr)0;
}
return CallNextHookEx(hHookHandle, nCode, wParam, ref lParam);
}
kyle315 2008-08-01
  • 打赏
  • 举报
回复
KeyPress事件,想更牛的话就用钩子了。
还想懒够 2008-08-01
  • 打赏
  • 举报
回复
只需要在KeyPress事件中来处理一下就可以了

KeyPress的时候判断输入的是不是字母还是数字,再判断窗口是不是弹出来了,然后再把字符弄上去即可
优途科技 2008-08-01
  • 打赏
  • 举报
回复
是否是模糊匹配?从数据库中检索?
PeopleRain 2008-08-01
  • 打赏
  • 举报
回复
我也想要,标记一下

都在打酱油?
PeopleRain 2008-08-01
  • 打赏
  • 举报
回复
我也想要,标记一下

都在打酱油?
zlkingdom 2008-08-01
  • 打赏
  • 举报
回复
按键精灵的代码??
如果只要取得用户输入的键可以在窗口的keypress事件中获得
XPingguo 2008-08-01
  • 打赏
  • 举报
回复
这和按钮精灵程序有什么关系
绝代坏坏 2008-07-31
  • 打赏
  • 举报
回复
我有webfrom的不过winform应该更简单吧
Dhoopu 2008-07-31
  • 打赏
  • 举报
回复
沙发,帮顶。

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧