首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Windows窗体应用程序中使用AD对话框“选择用户或组”?

在Windows窗体应用程序中使用AD对话框“选择用户或组”,可以通过以下步骤实现:

  1. 引用System.DirectoryServices命名空间:在项目中添加对System.DirectoryServices的引用,以便使用Active Directory相关的类和方法。
  2. 创建AD对话框:使用System.DirectoryServices.AccountManagement命名空间中的PrincipalSearcher和PrincipalSearchResult类,可以创建一个AD对话框。
  3. 设置对话框的过滤条件:通过设置PrincipalSearcher对象的QueryFilter属性,可以指定对话框中显示的用户或组的过滤条件。例如,可以设置过滤条件为用户类型或组类型。
  4. 显示对话框并获取选择结果:调用PrincipalSearcher对象的FindAll方法,可以显示AD对话框并获取用户或组的选择结果。选择结果将作为PrincipalSearchResult对象返回。

下面是一个示例代码,演示如何在Windows窗体应用程序中使用AD对话框“选择用户或组”:

代码语言:txt
复制
using System;
using System.DirectoryServices.AccountManagement;

namespace ADSelectionExample
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            // 创建AD对话框
            using (PrincipalSearcher searcher = new PrincipalSearcher(new UserPrincipal(null)))
            {
                // 显示对话框并获取选择结果
                PrincipalSearchResult<Principal> result = searcher.FindAll();

                // 处理选择结果
                foreach (Principal principal in result)
                {
                    // 在这里可以获取选择的用户或组的信息
                    string name = principal.Name;
                    string samAccountName = principal.SamAccountName;
                    // ...
                }
            }
        }
    }
}

这是一个简单的示例,通过点击按钮触发的事件来显示AD对话框,并获取选择的用户或组的信息。你可以根据实际需求进行进一步的处理和扩展。

对于腾讯云相关产品和产品介绍链接地址,由于要求不能提及具体的云计算品牌商,建议你参考腾讯云的官方文档和开发者资源,以获取与AD对话框相关的产品和服务信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

C#学习笔记—— 常用控件说明及其属性、事件

1、 窗体 的属性 1、常用属性 (1)Name属性:用来获取或设置窗体的名称,在应用程序中可通过Name属性来引用窗体。 (2) WindowState属性: 用来获取或设置窗体的窗口状态。 取值有三种: Normal (窗体正常显示)、 Minimized(窗体以最小化形式显示)和 Maximized(窗体以最大化形式显示)。 (3)StartPosition属性:用来获取或设置运行时窗体的起始位置。其取值及含义如表9-1 所示。默认的起始位置是WindowsDefaultLocation。 (4)Text属性:该属性是一个字符串属性,用来设置或返回在窗口标题栏中显示的文字。 (5)Width属性:用来获取或设置窗体的宽度。 (6)Height属性:用来获取或设置窗体的高度。 (7)Left属性:用来获取或设置窗体的左边缘的x坐标(以像素为单位)。 (8)Top属性:用来获取或设置窗体的上边缘的y坐标(以像素为单位)。 (9)ControlBox属性:用来获取或设置一个值,该值指示在该窗体的标题栏中是否显示控制框。值为true时将显示控制框,值为false时不显示控制框。 (10)MaximizeBox属性:用来获取或设置一个值,该值指示是否在窗体的标题栏中显示最大化按钮。值为 true时显示最大化按钮,值为false时不显示最大化按钮。 (11)MinimizeBox 属性:用来获取或设置一个值,该值指示是否在窗体的标题栏中显示最小化按钮。值为 true时显示最小化按钮,值为false时不显示最小化按钮。 (12)AcceptButton 属性:该属性用来获取或设置一个值,该值是一个按钮的名称,当按 Enter 键时就相当于单击了窗体上的该按钮。 (13)CancelButton 属性:该属性用来获取或设置一个值,该值是一个按钮的名称,当按 Esc 键时就相当于单击了窗体上的该按钮。 (14)Modal 属性:该属性用来设置窗体是否为有模式显示窗体。如果有模式地显示该窗体,该属性值为true;否则为 false。当有模式地显示窗体时,只能对模式窗体上的对象进行输入。必须隐藏或关闭模式窗体(通常是响应某个用户操作),然后才能对另一窗体进行输入。有模式显示的窗体通常用做应用程序中的对话框。 (15)ActiveControl属性:用来获取或设置容器控件中的活动控件。窗体也是一种容器控件。 (16)ActiveMdiChild属性:用来获取多文档界面(MDI)的当前活动子窗口。 (17)AutoScroll 属性:用来获取或设置一个值,该值指示窗体是否实现自动滚动。如果此属性值设置为true,则当任何控件位于窗体工作区之外时,会在该窗体上显示滚动条。另外当自动滚动打开时,窗体的工作区自动滚动,以使具有输入焦点的控件可见。 (18)BackColor属性:用来获取或设置窗体的背景色。 (19)BackgroundImage属性:用来获取或设置窗体的背景图像。 (20)Enabled 属性:用来获取或设置一个值,该值指示控件是否可以对用户交互作出响应。如果控件可以对用户交互作出响应,则为 true;否则为false。默认值为true。 (21)Font属性:用来获取或设置控件显示的文本的字体。 (22)ForeColor属性:用来获取或设置控件的前景色。 (23)IsMdiChild属性:获取一个值,该值指示该窗体是否为多文档界面(MDI)子窗体。值为 true时,是子窗体,值为false时,不是子窗体。 (24)IsMdiContainer 属性:获取或设置一个值,该值指示窗体是否为多文档界面(MDI)中的子窗体的容器。值为true时,是子窗体的容器,值为false时,不是子窗体的容器。 (25)KeyPreview属性:用来获取或设置一个值,该值指示在将按键事件传递到具有焦点的控件前,窗体是否将接收该事件。值为true时,窗体将接收按键事件,值为false时,窗体不接收按键事件。 (26)MdiChildren属性:数组属性。数组中的每个元素表示以此窗体作为父级的多文档界面(MDI)子窗体。 (27)MdiParent属性:用来获取或设置此窗体的当前多文档界面(MDI)父窗体。 (28)ShowInTaskbar属性:用来获取或设置一个值,该值指示是否在Windows任务栏中显示窗体。 (29)Visible属性:用于获取或设置一个值,该值指示是否显示该窗体或控件。值为true 时显示窗体或控件,为 false时不显示。 (30)Capture属性:如果该属性值为true,则鼠标就会被限定只由此控件响应,不管鼠标是否在此控件的范围内。 2、常用的方法 下面介绍一些窗体的最常用方法。 (1)Show方法:该方法的作用是让窗体显示出来,其调用格式为: 窗体名.

02

MessageBox用法详解

MessageBox对话框是比较常用的一个信息对话框,其不仅能够定义显示的信息内容、信息提示图标,而且可以定义按钮组合及对话框的标题,是一个功能齐全的信息对话框信息提示图标,而且可以定义按钮组合及对话框的标题,是一个功能齐全的信息对框。  1、函数原型及参数  function MessageBox(hWnd: HWND; Text, Caption: PChar; Type: Word): Integer;  hWnd:对话框父窗口句柄,对话框显示在Delphi窗体内,可使用窗体的Handle属性,否则可用0,使其直接作为桌面窗口的子窗口。  Text:欲显示的信息字符串。  Caption:对话框标题字符串。  Type:对话框类型常量。  该函数的返回值为整数,用于对话框按钮的识别。

01

c#实战教程_ps初学者入门视频

大家好,又见面了,我是你们的朋友全栈君。 C#基础教程-c#实例教程,适合初学者。 第一章 C#语言基础 本章介绍C#语言的基础知识,希望具有C语言的读者能够基本掌握C#语言,并以此为基础,能够进一步学习用C#语言编写window应用程序和Web应用程序。当然仅靠一章的内容就完全掌握C#语言是不可能的,如需进一步学习C#语言,还需要认真阅读有关C#语言的专著。 1.1 C#语言特点 Microsoft.NET(以下简称.NET)框架是微软提出的新一代Web软件开发模型,C#语言是.NET框架中新一代的开发工具。C#语言是一种现代、面向对象的语言,它简化了C++语言在类、命名空间、方法重载和异常处理等方面的操作,它摒弃了C++的复杂性,更易使用,更少出错。它使用组件编程,和VB一样容易使用。C#语法和C++和JAVA语法非常相似,如果读者用过C++和JAVA,学习C#语言应是比较轻松的。 用C#语言编写的源程序,必须用C#语言编译器将C#源程序编译为中间语言(MicroSoft Intermediate Language,MSIL)代码,形成扩展名为exe或dll文件。中间语言代码不是CPU可执行的机器码,在程序运行时,必须由通用语言运行环境(Common Language Runtime,CLR)中的既时编译器(JUST IN Time,JIT)将中间语言代码翻译为CPU可执行的机器码,由CPU执行。CLR为C#语言中间语言代码运行提供了一种运行时环境,C#语言的CLR和JAVA语言的虚拟机类似。这种执行方法使运行速度变慢,但带来其它一些好处,主要有:  通用语言规范(Common Language Specification,CLS):.NET系统包括如下语言:C#、C++、VB、J#,他们都遵守通用语言规范。任何遵守通用语言规范的语言源程序,都可编译为相同的中间语言代码,由CLR负责执行。只要为其它操作系统编制相应的CLR,中间语言代码也可在其它系统中运行。  自动内存管理:CLR内建垃圾收集器,当变量实例的生命周期结束时,垃圾收集器负责收回不被使用的实例占用的内存空间。不必象C和C++语言,用语句在堆中建立的实例,必须用语句释放实例占用的内存空间。也就是说,CLR具有自动内存管理功能。  交叉语言处理:由于任何遵守通用语言规范的语言源程序,都可编译为相同的中间语言代码,不同语言设计的组件,可以互相通用,可以从其它语言定义的类派生出本语言的新类。由于中间语言代码由CLR负责执行,因此异常处理方法是一致的,这在调试一种语言调用另一种语言的子程序时,显得特别方便。  增加安全:C#语言不支持指针,一切对内存的访问都必须通过对象的引用变量来实现,只允许访问内存中允许访问的部分,这就防止病毒程序使用非法指针访问私有成员。也避免指针的误操作产生的错误。CLR执行中间语言代码前,要对中间语言代码的安全性,完整性进行验证,防止病毒对中间语言代码的修改。  版本支持:系统中的组件或动态联接库可能要升级,由于这些组件或动态联接库都要在注册表中注册,由此可能带来一系列问题,例如,安装新程序时自动安装新组件替换旧组件,有可能使某些必须使用旧组件才可以运行的程序,使用新组件运行不了。在.NET中这些组件或动态联接库不必在注册表中注册,每个程序都可以使用自带的组件或动态联接库,只要把这些组件或动态联接库放到运行程序所在文件夹的子文件夹bin中,运行程序就自动使用在bin文件夹中的组件或动态联接库。由于不需要在注册表中注册,软件的安装也变得容易了,一般将运行程序及库文件拷贝到指定文件夹中就可以了。  完全面向对象:不象C++语言,即支持面向过程程序设计,又支持面向对象程序设计,C#语言是完全面向对象的,在C#中不再存在全局函数、全局变量,所有的函数、变量和常量都必须定义在类中,避免了命名冲突。C#语言不支持多重继承。 1.2 编写控制台应用程序 使用SDK命令行工具编写控制台程序 第一个程序总是非常简单的,程序首先让用户通过键盘输入自己的名字,然后程序在屏幕上打印一条欢迎信息。程序的代码是这样的: using System;//导入命名空间。//为C#语言新增解释方法,解释到本行结束 class Welcome//类定义,类的概念见下一节 { /*解释开始,和C语言解释用法相同 解释结束*/ static void Main()//主程序,程序入口函数,必须在一个类中定义 { Console.WriteLine(“请键入你的姓名:”);//控制台输出字符串 Console.ReadLine();//从键盘读入数据,输入回车结束 Console.WriteLine(“欢迎!”); } } 可以用任意一种文本编辑软件完成上述代码的编写,然后把文件存盘,假设文件名叫做welcome.c

01

怎样取消shutdown关机命令?-shutdown命令的使用解析

机房上课,可恶电脑总是被管理员測试,不时地弹出这个关机提示。怎样取消这个关机命令呢?其有用 shutdown -a 就可以。以下来学习一下shutdown命令的使用:   shutdown这个命令预计好多人不知道。事实上这个命令挺有用的。比方你须要下载一非常大的东西时想睡觉了,就可能用到这个命令。 比如:Shutdown.exe -s -t 7200 这里表示2小时后自己主动关机,”7200″代表2小时分钟,最小单位为”秒”。  大家还能够在Shutdown.exe中按需使用以下的经常使用參数: -s:关闭本地计算机 -f:强行关闭应用程序 -m:\\计算机名:控制远程计算机 -a:取消关机操作 -i:显示图形用户界面,但必须是Shutdown的第一个选项 -l:注销当前用户 -r:关机并重新启动 -t:时间:设置关机倒计时 -c:”消息内容”:输入关机对话框中的消息内容(不能超127个字符) 这里仅仅讲一下 shutdown -a 这个命令 其它由大家灵活运用 shutdown -a 取消关机操作 也就是说当您中了冲击波或者别的不论什么木马的时候,关机已经不是您本来的意愿时 您能够在開始的执行里输入shutdown -a这个命令后回车 您会发现 您的机子不再会提示多少秒后自己主动关机了。(xp有shutdown这个命令其它的系统请拷贝一个xp里的shutdown.exe到您的system32下再执行上述命令)  相关资料二: windows XP的关机是由Shutdown.exe程序来控制的,位于Windows\System32目录中。如  果想让Windows 2000也实现相同的效果,能够把Shutdown.exe拷贝到系统文件夹下。  比方你的电脑要在22:00关机,能够选择“開始→执行”,输入“at 22:00 Shutdown -s”,  这样,到了22点电脑就会出现“系统关机”对话框,默认有30秒钟的倒计时并提示你保存工  作。假设你想以倒计时的方式关机,能够输入“Shutdown.exe -s -t 3600”,这里表示60  分钟后自己主动关机,“3600”代表60分钟。  设置好自己主动关机后,假设想取消的话,能够在执行中输入“shutdown -a”。另外输入  “shutdown -i”,则能够打开设置自己主动关机对话框,对自己主动关机进行设置。  Shutdown.exe的參数,每个都具有特定的用途,运行每个都会产生不同的效果,比方  “-s”就表示关闭本地计算机,“-a”表示取消关机操作,以下列出了很多其它參数,大家  能够在Shutdown.exe中按需使用。  -f:强行关闭应用程序  -m \\计算机名:控制远程计算机  -i:显示图形用户界面,但必须是Shutdown的第一个选项  -l:注销当前用户  -r:关机并重新启动  -t 时间:设置关机倒计时  -c “消息内容”:输入关机对话框中的消息内容(不能超127个字符)  有时候,我们须要定时关闭计算机,以下介绍一个在Windows XP下实现定时关机的简单方  法。  指定系统在22分钟后自己主动关闭:点击“開始→执行”,在“打开”中输入命令“Shutdown  -s -t 1320”(注意:引號不输入,參数之间有空格,1320的单位是秒),单击“确定”  button就可以。  指定系统在某个时间(比方12:00)自己主动关闭:在“打开”中输入命令  “at 12:00 Shutdown -s”就可以。  取消定时关机:在“打开”中输入命令“Shutdown -a”就可以。  能的实现都是使用“Shutdown”命令实现的,shutdown的參数是在命令行窗体中输入  “shutdown”。笔者觉得最实用的是“-i”參数,能够调出“远程关机对话框”,  能方便地实现局域网内计算机的远程关机,有兴趣的朋友能够试一试。  開始-程序-附件-系统工具-计划任务-加入任务计划-下一步-浏览  -c:\windows\system32\shadow.exe-下一步-选好要关机的时间,  下一步-输入username和password,仅仅要是系统里有的用户即可,但一定要有password,  没有也要设一个,下一步,选上“在完毕时打开此任务的高级属性”,  在执行栏后面加上“ -S”引號不要哦

04
领券