我的小程序有问题。
我创建了一个按钮,当我按下它时,应该将当前用户域复制到我的剪贴板中。
private void button2_Click(object sender, EventArgs e)
{
Clipboard.SetText(System.Net.NetworkInformation.IPGlobalProperties.
GetIPGlobalProperties().DomainName);
}
但是当我调试程序并按下按钮时,VS总是给我一个错误。
System.ArgumentNullException ist aufgetreten.
HResult=0x80004003
Nachricht = Der Wert darf nicht NULL sein.
Parametername: text
Quelle = System.Windows.Forms
Stapelüberwachung:
at System.Windows.Forms.Clipboard.SetText(String text, TextDataFormat
format)
at WindowsFormsApp1.Window.button2_Click(Object sender, EventArgs e) in
C:\Users\user\Documents\Visual Studio
2017\Projects\WindowsFormsApp1\WindowsFormsApp1\Form1.cs:line 120
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button,
Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32
msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
at System.Windows.Forms.Application.ComponentManager.#
System.Windows.Forms.UnsafeNat
iveMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32
reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32
reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32
reason, ApplicationContext context)
at WindowsFormsApp1.Program.Main() in C:\Users\user\Documents\Visual
Studio 2017\Projects\WindowsFormsApp1\WindowsFormsApp1\Program.cs:line 18
提前谢谢
答案 0 :(得分:0)
我认为由于某种原因,这行代码System.Net.NetworkInformation.IPGlobalProperties.GetIPGlobalProperties().DomainName
会在您的案例中返回null
或空字符串。根据MSDN Clipboard.SetText
如果参数 null或为空则抛出异常。
您是否尝试过Environment.UserDomainName
?