怎么在一个程序中获取另外一个窗体的textbox的值,求解
解决方案 »
- 如何合并DATAGRIDVIEW中同一列相同值的几个单元格?
- Telerik。。。。。。。。。。怪异的提问。
- 关于dataGridView的数据更新问题
- 一个关于操作Excel的问题。。
- 关于IsolatedStorage的问题
- 急啊,大侠帮帮忙,做了一个页面是上下框架形式的,怎么可以在上面的页面输入查询条件,下面的页面显示查询结果啊
- 什麼叫函數異步調用?怎樣才算異步調用?
- 100f分求鼠标定时点击的代码
- 大神们,看到一句基本的语法愣是研究了半天。。求助
- 怎样用热键Ctrl+F6将应用程序显示在最前面?
- 这个代码怎么没有Main入口函数呢
- Mdi窗体如何主子窗体总是显示在父窗体的居中或居右上角
public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("user32.dll", EntryPoint = "FindWindowEx")]
public static extern IntPtr FindWindowEx(IntPtr hWnd1, IntPtr hWnd2, string lpsz1, string lpsz2);
[DllImport("User32 ")]
public static extern bool SendMessage(IntPtr hWnd, int Msg, int wParam, IntPtr lParam);
public const int WM_GETTEXT = 0xD;
private void button1_Click(object sender, EventArgs e)
{
if (pcalc == null || pcalc.HasExited) return;
IntPtr hEdit = FindWindowEx(pcalc.MainWindowHandle, IntPtr.Zero, "Edit", null);
string w = " ";
IntPtr ptr = Marshal.StringToHGlobalAnsi(w);
if (SendMessage(hEdit, WM_GETTEXT, 100, ptr))
{
MessageBox.Show(Marshal.PtrToStringAnsi(ptr));
}
}
2. owner public property
...
为你的修改密码的窗体设计property,然后程序先给它赋值(前一个窗体将自己的值设置给new出来的这个窗体实力的属性)。
API 详细用法请google or baiduSPY++:http://www.newhua.com/soft/1669.htm
//首先查找窗口句柄
this.mainWnd = FindWindow(null, "Citrix Secure Access");
用SPY++ 找到你要填写textbox的句柄
//通过SPY++获取相就textbox的名柄
IntPtr dlgItem = GetDlgItem(this.mainWnd, 0x3fe);
//通过发送消息的方式填写textbox内容
SendMessage(hWnd, 12, IntPtr.Zero, "NCS@Cag");
用到的API
//查找主窗体API
[DllImport("user32.dll", SetLastError=true)]
public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
//查找主窗体里的控件
[DllImport("user32.dll ")]
public static extern IntPtr GetDlgItem(IntPtr hParent, int nIDParentItem);
//发送消息
[DllImport("User32.dll")]
public static extern int SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, string lParam);
//添加一个类Helper,定义一个公共的静态的变量Pwd接收第一个窗体的值,静态的可以直接用类名打点来访问成员变量的,不必实例化
public static string pwd="";在它的TextChanged事件里写
Helper.pwd=txtPwd.Text.Trim();//将txtPwd里的值传给定义的Helper类里面的变量Pwd在第二个窗体里调用就可以//比如第二个的textBox的name是txtPwd1则:txtPwd1.Text=Helper.pwd;
就可以了