C# winfrom Datagridview控件下拉菜單


拖拽一個datagridview放在界面,編輯列把下來菜單那列ColumnType設置成DataGridViewComboBoxColumn

然后在數據一欄的Items可以寫下來菜單的內容也可以后台代碼寫

下面是后台代碼實現功能

 private void dgUserAuthData_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
        {
            if (dgUserAuthData.CurrentCell.ColumnIndex == 5 && dgUserAuthData.CurrentCell.ColumnIndex != -1)
            {
                ComboBox combo = e.Control as ComboBox;
                combo.SelectedIndexChanged += new EventHandler(ComboBox_SelectedIndexChanged);
            }
        }

        public void combox_Leave(object sender, EventArgs e)
        {
            ComboBox combox = sender as ComboBox;
            //做完處理,須撤銷動態事件
            combox.SelectedIndexChanged -= new EventHandler(ComboBox_SelectedIndexChanged);
        }

        private void ComboBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                ComboBox combo = (ComboBox)sender;
                combo.Leave += new EventHandler(combox_Leave);
                if (combo.SelectedIndex > -1)
                {
                    string selectedItem = combo.Text;//拿到選擇后的值

                    DataGridViewRow dv = dgUserAuthData.CurrentRow;
                    MessageBoxButtons messButton = MessageBoxButtons.YesNo;
                    DialogResult dr = MessageBox.Show("確定要" + selectedItem + "該用戶嗎?", "確定" + selectedItem, messButton);
                    if (dr == DialogResult.No)
                    {
                        return;
                    }
                    if (userModel.MangerVoucher == "")
                    {
                        MessageBox.Show("您沒有管理憑證修改不了");
                        return;
                    }
                    string[] colItems = { "UserPhoneNo", "AccessOperation" };
                    string[] valueItems = new string[2];//添加新增的內容
                    valueItems[0] = userModel.UserPhoneNo; valueItems[1] = selectedItem;
                    //判斷有哪些權限,然后只能修改這些權限         
                    SQLiteDbHelper ScabHelper1 = new SQLiteDbHelper(TrhaConst.trhaSCAB);
                    if (ScabHelper1.dbConnection.State == ConnectionState.Open)
                    {
                        IDataReader sqReader = ScabHelper1.UpdateInto("CcUser", colItems, valueItems, "UserPhoneNo", userModel.UserPhoneNo);
                    }
                    if (ScabHelper1.dbConnection.State == ConnectionState.Open) ScabHelper1.CloseSqlConnection();
                    MessageBox.Show("修改成功");
                }
              
            }
            catch (Exception)
            {


            }
        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM