转换/转换字符串(从文本框)到IntPtr C#

сам*_*.D. 3 c# casting handle intptr

我有一个文本框,我想输入(手动)一个句柄(http://i.imgur.com/S1bCyPy.png)

我的问题:要从文本框中获取值,我需要这样做:

textBoxHandle.Text;
Run Code Online (Sandbox Code Playgroud)

但是当我将我的Handle初始化为IntPtr(句柄)时,这不起作用:

IntPtr h = new IntPtr(textBoxHandle.Text);
Run Code Online (Sandbox Code Playgroud)

我试过了

(IntPtr) textBoxHandle.Text
Run Code Online (Sandbox Code Playgroud)

还有我在这里读过的许多其他选项,如Marshal.StringToHGlobalAnsi方法,但它们不起作用/它们改变了内容.

我的问题:如何从文本框中的字符串(使用句柄格式)获取IntPtr(句柄)?

编辑:在文本框中,我会写0x00040C66.

最终的代码应该是:

IntPtr hWnd = new IntPtr(0x00040C66);
Run Code Online (Sandbox Code Playgroud)

但是从文本框中更改IntPtr的值.

编辑:我的问题被标记为重复(如何将非托管IntPtr类型转换为ac#string?)但它不一样.它不是从IntPtr到String我想要的.我需要相反的,从String到IntPtr.

cub*_*brr 7

您需要将字符串解析为a intlongfirst,然后构造IntPtr.

IntPtr handle = new IntPtr(Convert.ToInt32(textBoxHandle.Text, 16));
// IntPtr handle = new IntPtr(Convert.ToInt64(textBoxHandle.Text, 16));
Run Code Online (Sandbox Code Playgroud)

的第二个参数Convert.ToInt32ToInt64指定数量的基数,因为你解析一个十六进制数字字符串,它需要16.