⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 formmain.cs

📁 kuiMsg是一款用.net C# 开发的即时消息开源软件,适合.net即时消息软件开发者用。 主要功能: 支持文件传输(p2p); 支持GIF动画表情( 彻底消除闪屏 :) );
💻 CS
📖 第 1 页 / 共 4 页
字号:
                loginTimerCount = 0;
                this.tabSelfInfo.Text =FormAccess.selfInfo.userName + "(未登录)";
                this.tabSelfInfo.Refresh();
                ((Timer)sender).Enabled = false;

                this.NotifyIcon.BalloonTipText = "由于网络原因造成连接服务器超时,登录失败!";
                this.NotifyIcon.BalloonTipTitle = "LanMsg登录失败";
                this.NotifyIcon.ShowBalloonTip(5000);
            }

            if (loginTimerCount % 2 == 0)
            {
                this.StartButton.Icon = this.loginIcon;

            }
            else
            {
                this.StartButton.Icon = null;
            }
             
        }
        #endregion

        #region 菜单操作事件
        private void but_Click(object sender, EventArgs e)
        {
            DevComponents.DotNetBar.ButtonItem but = (DevComponents.DotNetBar.ButtonItem)sender;
            switch (but.Name )
            {
                case "butLogin":
                    if (FormAccess.selfInfo.State == 0)
                    {
                        this.Login();//开始登录
                        this.timerLogin.Enabled = true; //开始检测登录
                    }
                    break;
                case "butOut": //向服务器及其他用户发送离线
                    break;
                case "butChangeUser"://更改登录用户
                    FormLogin flogin = new FormLogin();
                    flogin.ShowDialog (this);
                    break;
                case  "butLink":
                case  "butBusy":
                case  "butLeave":
                case  "butPhone":
                case  "butRepast":
                    this.changeOnlineState(but);
                    break;
                case "ButSendGroupMsg":
                    FormAccess.showPublicForm("FormSendMsgGroup");
                    break;
                case "butExit":
                    this.ExitApp();//退出程序
                    break;
                case "butClose":
                    this.Close();//关闭程序
                    break;
                case "butAbout":
                    FormAccess.showPublicForm("AboutBox");
                    break;
                case"butMsgMis":
                    FormAccess.showPublicForm("FormRecordMsgMisg");
                    break;
                case "MenuSystemSet":
                    FormAccess.showPublicForm("FormAppSet" );
                    break;
            }
        }

 

        private void changeOnlineState(object sender)
        {
            DevComponents.DotNetBar.ButtonItem but = (DevComponents.DotNetBar.ButtonItem)sender;
            bool t = false;
            {
                this.butLink.Checked = t;
                this.butBusy.Checked = t;
                this.butLeave.Checked = t;
                this.butPhone.Checked = t;
                this.butRepast.Checked = t;
            }

            but.Checked = !t;

            switch (but.Name)
            {
                case "butLink":
                    FormAccess.selfInfo.State = 1;
                    break;
                case "butBusy":
                    FormAccess.selfInfo.State = 2;
                    break;
                case "butLeave":
                    FormAccess.selfInfo.State = 4;
                    break;
                case "butPhone":
                    FormAccess.selfInfo.State = 3;
                    break;
                case "butRepast":
                    FormAccess.selfInfo.State = 5;
                    break;
            }

        }
        #endregion
         
        #region 登录OA Web页面

        HtmlElement OA_txtUserHtml, OA_txtPasswordHtml, OA_btnClickHtml;


        private void webBrowser2_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            HtmlElement txtUserHtml = webBrowser1.Document.All["LoginForm.wps.portlets.userid"];
            HtmlElement txtPasswordHtml = webBrowser1.Document.All["LoginForm.password"];
            HtmlElement btnClickHtml = webBrowser1.Document.All["PC_7_6V066I93001V0025VNDTDV10G0__login"];

            //HtmlElement formLogin = webBrowser1.Document.Forms["LoginForm"];
           
            //for (int i=0;i<webBrowser1.Document.All.Count;i++)
            //    MessageBox.Show(webBrowser1.Document.Forms.GetElementsByName[]):

            //if (txtPasswordHtml == null)
            //    MessageBox.Show("没有找到txtPasswordHtml输入点");
            //if (btnClickHtml == null)
            //    MessageBox.Show("没有找到btnClickHtml输入点");

           
            txtUserHtml.SetAttribute("value", "52000078");//输入用户名
            txtPasswordHtml.SetAttribute("value", "888888");//输入密码
            btnClickHtml.InvokeMember("click");

           // formLogin.InvokeMember("submit");

        }

        private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            OA_txtUserHtml = webBrowser1.Document.All["txtUserName"];
            OA_txtPasswordHtml = webBrowser1.Document.All["txtPassword"];
            OA_btnClickHtml = webBrowser1.Document.All["btnLogin"];
        }

        private void LoginOA(string userName,string password)
        {
            if (OA_txtUserHtml != null && OA_txtPasswordHtml != null && OA_btnClickHtml != null)
            {
                OA_txtUserHtml.SetAttribute("value", "ligy");//输入用户名
                OA_txtPasswordHtml.SetAttribute("value", "sbmqjuem");//输入密码
                OA_btnClickHtml.InvokeMember("click");
            }
        }


        private void tabControlMain_SelectedTabChanged(object sender, DevComponents.DotNetBar.TabStripTabChangedEventArgs e)
        {
            switch (e.NewTab.Tooltip)
            {
                case  "OA主页":
                   LoginOA("", "");
                   break;
            } 
        }
        #endregion

        #region TreeView操作及事件
        private void TreeUsers_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e)
        {
            switch (e.Node.Tag.ToString())
            {
                case "0":
                    break;
                case "1":
                    //if (e.Node.Name == FormAccess.selfInfo.UserID) return;
                    FormAccess.newSendMsgForm(e.Node.Name);
                    break;
            }
        }


        private void TreeUsers_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
        {
            if (!e.Node.IsExpanded && e.Node.Nodes.Count != 0 && !e.Node.TreeView.CheckBoxes )
            {
                e.Node.TreeView.CollapseAll();
                e.Node.Expand();
            }
            switch (e.Node.Tag.ToString())
            {
                case "0":
                    break;
                case "1":
                    if (e.Node.Name == FormAccess.selfInfo.UserID) return;
                    //if (FormAccess.findUser(e.Node.Name).State != 0)
                       this.MenuStripSend.Show(this.TreeUsers, e.X, e.Y+2); 
                    break;
            }

            
        }

        private void TreeUsers_AfterCheck(object sender, TreeViewEventArgs e)
        {
            foreach (TreeNode node in e.Node.Nodes)
                node.Checked = e.Node.Checked;
        }

       private void TreeUsers_DragEnter(object sender, DragEventArgs e)
        {
            if (e.Data.GetDataPresent(DataFormats.FileDrop))
            {
                e.Effect = DragDropEffects.All;
            }
            TreeNode node = TreeUsers.GetNodeAt(e.X, e.Y);
            if (node == null) return;
            TreeUsers.SelectedNode = node;

        }

        private void TreeUsers_DragDrop(object sender, DragEventArgs e)
        {
           TreeNode node=  TreeUsers.GetNodeAt(e.X, e.Y);
           if (node == null) return;
           TreeUsers.SelectedNode = node;
           if (node.Tag.ToString() == "1")
           {
              if (node.Name == FormAccess.selfInfo.UserID) return;
               FormAccess.newSendMsgForm(node.Name);
           }
            //if (e.Data.GetDataPresent(DataFormats.FileDrop))
            //{
            //    currUserInfo = FormAccess.findUser(this.Tag.ToString());
            //    if (currUserInfo == null) return;

            //    string[] MyFiles;
            //    int i;

            //    // 将文件赋给一个数组。

            //    MyFiles = (string[])(e.Data.GetData(DataFormats.FileDrop));
            //    // 循环处理数组并将文件添加到列表中。

            //    for (i = 0; i <= MyFiles.Length - 1; i++)
            //    {
            //        System.IO.FileInfo f = new System.IO.FileInfo(MyFiles[i]);

            //        if (f.Exists)
            //            this.FileTransfers(true, f.Name, f.FullName, f.Extension, f.Length, currUserInfo.IP, currUserInfo.Port);
            //    }
            //}
        }

        private TreeNode m_LastMouseOverNode = null;
        private void TreeUsers_MouseMove(object sender, MouseEventArgs e)
        {
            TreeNode nodeAt = this.TreeUsers.GetNodeAt(e.X, e.Y);
            if (nodeAt != m_LastMouseOverNode)
            {
                HideNodeTooltip();
                if (nodeAt != null)
                {
                    m_LastMouseOverNode = nodeAt;
                    // Delayed display
                    tooltipDisplayDelay.Start(); 
                }
            }
        }

        private void tooltipDisplayDelay_Tick(object sender, System.EventArgs e)
        {
            tooltipDisplayDelay.Stop();
            if (m_LastMouseOverNode != null)
                ShowNodeTooltip(m_LastMouseOverNode);
        }

        private void HideNodeTooltip()
        {
            if (m_LastMouseOverNode != null)
            {
                //NodeSuperTooltipProvider sp = m_LastMouseOverNode.Tag as NodeSuperTooltipProvider;
                //sp.Hide();
                this.superTooltip1.HideTooltip ();
                m_LastMouseOverNode = null;
            }
        }

        private void ShowNodeTooltip(TreeNode node)
        {
            if (node == null)
                return;

            //NodeSuperTooltipProvider sp = node.Tag as NodeSuperTooltipProvider;
            //sp.Show();
            superTooltip1.ShowTooltip(node );
            m_LastMouseOverNode = node;
        }

        private void TreeUsers_MouseDown(object sender, MouseEventArgs e)
        {
            // Hide tooltip if any is visible...
            HideNodeTooltip();
        }

        #endregion
        

        private void MenuStripSend_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {
            MenuStripSend.Hide();
            switch (e.ClickedItem.Name)
            {
                case "MenuItemSendMsg":
                    FormAccess.newSendMsgForm(this.TreeUsers.SelectedNode.Name);
                    break;
                case "MenuItemSendFile":
                    System.Windows.Forms.OpenFileDialog fd = new OpenFileDialog();
                    fd.Multiselect = true;
                    fd.Filter = "所有文件|*.*";
                    if (fd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                    {
                        exUser user = FormAccess.findUser(this.TreeUsers.SelectedNode.Name);
                        FormSendMsg fSendMsg = (FormAccess.newSendMsgForm(this.TreeUsers.SelectedNode.Name) as FormSendMsg);

                        for (int i = 0; i < fd.FileNames.Length; i++)
                        {
                            System.IO.FileInfo f = new System.IO.FileInfo(fd.FileNames[i]);
                            fSendMsg.FileTransfers(true, f.Name, f.FullName, f.Extension, f.Length, user.IP, user.Port);
                        }
                    }
                    break;
            }
        }

        private void FormMain_ResizeEnd(object sender, EventArgs e)
        {
            //if (this.WindowState == FormWindowState.Minimized)
            //    this.TopMost = false;
            //else
            //    this.TopMost = true;
        }

    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -