winform空间批量控制

第一版:

private void RefreshControl(PanelEx panel, bool enabled, bool isClear)
        {
            for (int i = 0; i < panel.Controls.Count; i++)
            {
                if (panel.Controls[i] is PanelEx)
                {
                    PanelEx panel1 = panel.Controls[i] as PanelEx;
                    RefreshControl(panel1, enabled, isClear);
                }
                else if (panel.Controls[i] is DevComponents.DotNetBar.TabControl)
                {
                    DevComponents.DotNetBar.TabControl tabControl = panel.Controls[i] as DevComponents.DotNetBar.TabControl;
                    RefreshControl(tabControl, enabled, isClear);
                }
                else if (panel.Controls[i] is TextBoxX)
                {
                    TextBox textbox = panel.Controls[i] as TextBoxX;
                    textbox.Enabled = enabled;
                    if (isClear)
                        textbox.Clear();
                }
                else if (panel.Controls[i] is DateTimeInput)
                {
                    DateTimeInput dtInput = panel.Controls[i] as DateTimeInput;
                    dtInput.Enabled = enabled;
                    if (isClear)
                        dtInput.Value = DateTime.Parse("2999/1/1");
                }
                else if (panel.Controls[i] is ButtonX)
                {
                    ButtonX btn = panel.Controls[i] as ButtonX;
                    btn.Enabled = enabled;
                }
                else if (panel.Controls[i] is CheckBoxX)
                {
                    CheckBoxX checkBoxX = panel.Controls[i] as CheckBoxX;
                    checkBoxX.Enabled = enabled;
                    if (isClear)
                        checkBoxX.Checked = false;
                }
                else if (panel.Controls[i] is BarcodeControl)
                {
                    BarcodeControl barcodeControl = panel.Controls[i] as BarcodeControl;
                    barcodeControl.Enabled = enabled;
                    if (isClear)
                        barcodeControl.Data = "000000000";
                }
                else if (panel.Controls[i] is ComboBoxEx)
                {
                    ComboBoxEx comboBoxEx = panel.Controls[i] as ComboBoxEx;
                    comboBoxEx.Enabled = enabled;
                    if (isClear)
                        comboBoxEx.Text = "";
                }
            }
        }

private void RefreshControl(DevComponents.DotNetBar.TabControl tabControl, bool enabled, bool isClear)
        {
            int index = tabControl.SelectedTabIndex;
            for (int i = 0; i < 5; i++)
            {
                TabControlPanel panel = tabControl.SelectedPanel;
                foreach (Control item in panel.Controls)
                {
                    if (item is TextBoxX)
                    {
                        TextBox textbox = item as TextBoxX;
                        textbox.Enabled = enabled;
                        if (isClear)
                            textbox.Clear();
                    }
                    else if (item is CheckBoxX)
                    {
                        CheckBoxX checkBoxX = item as CheckBoxX;
                        checkBoxX.Enabled = enabled;
                        if (isClear)
                            checkBoxX.Checked = false;
                    }
                    else if (item is ButtonX)
                    {
                        ButtonX btn = item as ButtonX;
                        btn.Enabled = enabled;
                    }
                    else if (item is DataGridViewX)
                    {
                        DataGridViewX grid = item as DataGridViewX;
                        if (isClear)
                        {
                            if (grid.DataSource != null && grid.Rows.Count != 0)
                            {
                                DataTable dt = (DataTable)grid.DataSource;
                                dt.Rows.Clear();
                                grid.DataSource = dt;
                                //grid.Rows.Clear();
                            }
                        }
                    }
                    else if (item is DateTimeInput)
                    {
                        DateTimeInput dtInput = item as DateTimeInput;
                        dtInput.Enabled = enabled;
                        if (isClear)
                        {
                            dtInput.Value = DateTime.Parse("2999/1/1");
                        }
                    }
                    else if (item is PictureBox)
                    {
                        PictureBox pic = item as PictureBox;
                        pic.Enabled = enabled;
                        if (isClear)
                        {
                            pic.Image = null;
                        }
                    }
                    else if (item is PanelEx)
                    {
                        PanelEx panel1 = item as PanelEx;
                        RefreshControl(panel1, enabled, isClear);
                    }
                }
                if (!tabControl.SelectNextTab())
                {
                    tabControl.SelectedTabIndex = 0;
                    if (tabControl.SelectedTabIndex == index)
                        break;
                }
            }
            tabControl.SelectedTabIndex = index;
        }
View Code

第二版

private void RefreshControl(Control baseControl,bool enabled, bool isClear)
        {
            foreach (Control Control in baseControl.Controls)
            {
                if (Control is PanelEx)
                {
                    PanelEx panel = Control as PanelEx;
                    RefreshControl(panel, enabled, isClear);
                }
                else if (Control is DevComponents.DotNetBar.TabControl)
                {
                    DevComponents.DotNetBar.TabControl tabControl = Control as DevComponents.DotNetBar.TabControl;
                    RefreshControl(tabControl, enabled, isClear);
                }
                else if (Control is TabControlPanel)
                {
                    TabControlPanel tabPanel = Control as TabControlPanel;
                    RefreshControl(tabPanel, enabled, isClear);
                }
                else if (Control is TextBoxX)
                {
                    TextBox textbox = Control as TextBoxX;
                    textbox.Enabled = enabled;
                    if (isClear)
                        textbox.Clear();
                }
                else if (Control is ButtonX)
                {
                    ButtonX btn = Control as ButtonX;
                    btn.Enabled = enabled;
                }
                else if (Control is DateTimeInput)
                {
                    DateTimeInput dtInput = Control as DateTimeInput;
                    dtInput.Enabled = enabled;
                    if (isClear)
                        dtInput.Value = DateTime.Parse("2999/1/1");
                }
                else if (Control is CheckBoxX)
                {
                    CheckBoxX checkBoxX = Control as CheckBoxX;
                    checkBoxX.Enabled = enabled;
                    if (isClear)
                        checkBoxX.Checked = false;
                }
                else if (Control is BarcodeControl)
                {
                    BarcodeControl barcodeControl = Control as BarcodeControl;
                    barcodeControl.Enabled = enabled;
                    if (isClear)
                        barcodeControl.Data = "000000000";
                }
                else if (Control is ComboBoxEx)
                {
                    ComboBoxEx comboBoxEx = Control as ComboBoxEx;
                    comboBoxEx.Enabled = enabled;
                    if (isClear)
                        comboBoxEx.Text = "";
                }
                else if (Control is DataGridViewX)
                {
                    DataGridViewX grid = Control as DataGridViewX;
                    if (isClear)
                    {
                        if (grid.DataSource != null && grid.Rows.Count != 0)
                        {
                            DataTable dt = (DataTable)grid.DataSource;
                            dt.Rows.Clear();
                            grid.DataSource = dt;
                            //grid.Rows.Clear();
                        }
                    }
                }
                else if (Control is PictureBox)
                {
                    PictureBox pic = Control as PictureBox;
                    pic.Enabled = enabled;
                    if (isClear)
                    {
                        pic.Image = null;
                    }
                }
                else if (Control is GroupPanel)
                {
                    RefreshControl(Control, enabled, isClear);
                }
            }
        }
View Code

 

转载于:https://www.cnblogs.com/liuslayer/p/5772977.html

### 回答1: WinForm批量远程控制桌面指的是使用WinForm技术实现批量控制远程桌面的功能。 在实现这个功能之前,我们需要了解远程桌面控制的基本原理。远程桌面控制是指通过网络连接远程计算机,并且能够在本地计算机上操作和控制远程计算机的桌面。通常,远程桌面控制涉及两个主要的角色,即服务端和客户端。 服务端是远程计算机上运行的软件,它负责提供远程访问的服务。客户端是本地计算机上运行的软件,它负责连接远程计算机,并且提供用户操作的界面。 在WinForm中实现批量远程控制桌面的基本步骤如下: 1. 创建一个WinForm应用程序,作为客户端的界面。 2. 使用WinForm的界面设计工具,设计一个用户界面,包括远程计算机列表、控制按钮等。 3. 实现远程计算机列表的管理功能,可以添加、删除和编辑远程计算机的信息。 4. 实现连接远程计算机的功能,可以通过网络连接到远程计算机,并且获取到远程桌面的图像数据。 5. 实现桌面控制的功能,可以在本地计算机上操作远程桌面的鼠标、键盘等输入设备,并且将操作传递到远程计算机上。 6. 实现批量控制的功能,可以选择多台远程计算机进行批量控制,可以同时进行多个远程桌面控制的操作。 7. 实现远程桌面的图像显示功能,可以将远程计算机的桌面图像实时显示在客户端的界面上。 8. 实现错误处理和异常处理的功能,保证程序的稳定性和安全性。 以上是用300字回答如何使用WinForm实现批量远程控制桌面的问题。希望以上内容对你有帮助。 ### 回答2: WinForm批量远程控制桌面是指通过使用WinForm技术来实现对多个远程桌面的同时控制。这项技术可用于一些需要同时管理多台远程计算机的场景,如企业级系统管理、网络维护等。 实现此功能的方法如下: 1. 建立服务器端:首先搭建一个服务器端程序,用于接收客户端连接和处理远程控制请求。可以基于WinForm开发,采用TCP/IP通信协议,通过监听服务器的IP地址和端口,等待客户端的连接请求。 2. 建立客户端:每个需要被控制的远程计算机都需要安装一个客户端程序,可以基于WinForm开发。客户端程序需要连接到服务器端,并向服务器发送远程控制请求。 3. 连接与通信:客户端请求连接服务器,服务器端接受连接请求后与客户端建立有效的双向通信。可以使用Socket进行数据传输,实现双向的数据交互。 4. 桌面远程控制:服务器端在接受到来自客户端的远程控制请求后,通过使用相关的技术,如远程桌面协议(如RDP协议)、远程控制库(如OpenRPA)或远程桌面工具(如TeamViewer)等方式,实现对远程计算机桌面的实时抓取、远程操作和控制。 5. 批量控制:通过在服务器端管理多个客户端的连接信息,可以实现对多个远程计算机的同时控制。可以通过列表或树形结构显示已连接的客户端,实时更新远程计算机的状态和活动。 总之,WinForm批量远程控制桌面功能的实现需要借助于服务器端和客户端的程序,并通过相关的远程控制技术实现对多台远程计算机的同时控制。这样可以方便地进行集中管理和维护,提高工作效率和减少成本。 ### 回答3: Winforms是一种用于开发Windows桌面应用程序的技术。要实现批量远程控制桌面,通常需要结合远程桌面协议(如RDP)和网络编程来实现。 首先,我们可以使用Winforms开发一个简单的应用程序,用于管理和控制远程桌面。这个程序可以提供用户界面,用于输入和管理要远程控制的目标机器的信息。 然后,我们可以使用远程桌面协议(如RDP)来远程连接到目标机器。在Winforms应用程序中,我们可以使用自带的Windows.Forms类库中的远程桌面控件(如RemoteDesktopControl)来实现桌面的远程访问和控制。 为了实现批量远程控制,我们可以在应用程序中提供一个列表或数据库,用于存储和管理要控制的目标机器的信息。用户可以通过UI界面进行添加、删除和编辑目标机器的信息。 用户可以选择一个或多个目标机器进行远程控制。通过远程桌面协议,我们可以在Winforms应用程序中创建多个远程连接,并将其显示在不同的窗口中,以便同时控制多台机器。 此外,我们还可以在应用程序中实现一些额外的功能,如屏幕共享、文件传输等。这些功能可以通过网络编程来实现,例如使用Socket或WCF通信机制。 在应用程序开发完成后,用户可以通过该应用程序方便地批量远程控制桌面。他们只需选择目标机器,并通过远程桌面控制来实现对这些机器的远程访问和控制。 总之,借助Winforms技术,并结合远程桌面协议和网络编程,我们可以开发一个功能强大的应用程序,实现批量远程控制桌面的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值