将userdomain复制到剪贴板错误

时间:2017-09-02 09:05:44

标签: c#

我的小程序有问题。

我创建了一个按钮,当我按下它时,应该将当前用户域复制到我的剪贴板中。

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

提前谢谢

1 个答案:

答案 0 :(得分:0)

我认为由于某种原因,这行代码System.Net.NetworkInformation.IPGlobalProperties.GetIPGlobalProperties().DomainName会在您的案例中返回null空字符串。根据MSDN Clipboard.SetText如果参数 null或为空则抛出异常。

您是否尝试过Environment.UserDomainName