日韩欧美人妻无码精品白浆,www.大香蕉久久网,狠狠的日狠狠的操,日本好好热在线观看

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

WinForm 中實(shí)現(xiàn) DataGridView 按鈕的禁用效果

admin
2025年6月21日 11:24 本文熱度 252

需求提出

在 WinForm 開發(fā)過程中,我們常常會(huì)使用 DataGridView 來展示和操作數(shù)據(jù)。而當(dāng)需求中要求嵌入按鈕列,并支持按鈕狀態(tài)的"啟用 / 禁用"切換時(shí),事情就變得不那么簡單了。

最近我就遇到了這樣一個(gè)看似簡單實(shí)則棘手的需求:**在 DataGridView 中添加按鈕列,并根據(jù)業(yè)務(wù)邏輯動(dòng)態(tài)控制按鈕是否"可點(diǎn)擊"**。

傳統(tǒng)方案的困擾

面對(duì)這個(gè)需求,我本能地打開了搜索引擎,一頓 Ctrl + C / Ctrl + V,結(jié)果發(fā)現(xiàn):

  • 有的建議重寫 DataGridViewButtonColumn;

  • 有的推薦自定義控件;

  • 還有大佬祭出 DataGridViewDisableButtonColumn 這種高階玩法。

說實(shí)話,看完之后我差點(diǎn)沒原地去世??——不是不行,而是太折騰!這些方法不僅實(shí)現(xiàn)起來復(fù)雜,維護(hù)成本也極高,尤其對(duì)于項(xiàng)目周期緊張、時(shí)間有限的小型項(xiàng)目來說,實(shí)在難以承受。

于是我陷入了沉思……

思路轉(zhuǎn)換:從"功能禁用"到"視覺禁用"

既然底層控制按鈕狀態(tài)這么難搞,那我們能不能換個(gè)思路?

用戶判斷一個(gè)按鈕是否"禁用",很多時(shí)候是靠視覺感知的。也就是說,只要按鈕看起來像是"被禁用了",用戶就不會(huì)去點(diǎn)它!

于是,我決定采用一種"視覺假禁用"的方式,來達(dá)到類似禁用的效果。

實(shí)現(xiàn)思路

使用 CellFormatting 事件模擬禁用樣式

我們可以通過 DataGridView.CellFormatting 事件,在特定條件下對(duì)按鈕單元格進(jìn)行樣式渲染,讓它看起來像"被禁用了"。

具體做法如下:

1、監(jiān)聽 CellFormatting 事件;

2、判斷當(dāng)前是否滿足禁用條件;

3、如果滿足,則將該按鈕單元格的字體顏色、背景色等樣式設(shè)置為"灰色系",模擬禁用效果。

代碼如下:

private void dgvCh_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
    if (e.RowIndex >= 0 && e.ColumnIndex == 15)
    {
        DataGridViewCell cell = dgvCh.Rows[e.RowIndex].Cells[e.ColumnIndex];
        DataGridViewCell cell2 = dgvCh.Rows[e.RowIndex].Cells[e.ColumnIndex + 1];

        if (cell2.Value != null && cell2.Value.ToString().ToUpper() == "FALSE")
        {
            cell.Style.BackColor = Color.LightGray; // 設(shè)置按鈕背景色
            cell.Style.ForeColor = Color.DarkGray;  // 設(shè)置按鈕字體顏色
            cell.Style.SelectionBackColor = Color.LightGray; // 設(shè)置選中背景色
            cell.Style.SelectionForeColor = Color.DarkGray;  // 設(shè)置選中字體顏色
        }
    }
}

注意:這里假設(shè)第 16 列(索引為15)是按鈕列,第 17 列(索引為16)用于判斷是否禁用。

看一下效果

?

在點(diǎn)擊事件中加一層邏輯判斷

雖然樣式已經(jīng)"看起來"禁用了,但為了防止用戶誤操作,我們在 CellContentClick 事件中再加一層邏輯判斷:

private void dgvCh_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
    if (e.RowIndex >= 0 && e.ColumnIndex == 15)
    {
        DataGridViewRow DGVR = dgvCh.CurrentRow;
        if (DGVR.Cells[16].Value != null && DGVR.Cells[16].Value.ToString().ToUpper() == "TRUE")
        {
            // 執(zhí)行上傳文件等實(shí)際邏輯
        }
    }
}

這樣一來,即使用戶點(diǎn)了"灰掉"的按鈕,也不會(huì)觸發(fā)任何操作。

效果展示

通過上述處理,最終實(shí)現(xiàn)了如下效果:

  • 符合條件的按鈕列顯示為灰色,仿佛"被禁用了";

  • 用戶看到后自然不會(huì)點(diǎn)擊;

  • 即使誤點(diǎn),也會(huì)在點(diǎn)擊事件中被攔截,避免執(zhí)行錯(cuò)誤邏輯。

就這樣,按鈕雖然還能點(diǎn)擊,但你一看它那副灰頭土臉的樣子,誰還會(huì)點(diǎn)它?

總結(jié):換種思路,輕松解決問題

這波操作,說復(fù)雜不復(fù)雜,說簡單也不簡單。關(guān)鍵在于換個(gè)角度思考問題 —— 不去和控件死磕底層,而是用一套"演技 + 判斷"的組合拳,達(dá)到了視覺與交互上的"類禁用"效果。

對(duì)于中小型項(xiàng)目或時(shí)間緊迫的場景,這種"視覺禁用"的方式不失為一種實(shí)用又高效的解決方案。

結(jié)語

人生就像按鈕,有時(shí)得假裝自己壞了。

如果你也被這個(gè)問題困擾過,希望這篇文章能幫你少掉幾根頭發(fā)

如果這個(gè)方法剛好幫到了你,不如點(diǎn)個(gè)贊讓我也"看起來像被鼓勵(lì)過"吧!

關(guān)鍵詞: #WinForm#DataGridView、#按鈕禁用、#視覺禁用、#CellFormatting、#CellContentClick#UI優(yōu)化、#交互設(shè)計(jì)、#C#、#工業(yè)軟件開發(fā)。

最后
如果你覺得這篇文章對(duì)你有幫助,不妨點(diǎn)個(gè)贊支持一下!你的支持是我繼續(xù)分享知識(shí)的動(dòng)力。如果有任何疑問或需要進(jìn)一步的幫助,歡迎隨時(shí)留言。也可以加入微信公眾號(hào)[DotNet技術(shù)匠] 社區(qū),與其他熱愛技術(shù)的同行一起交流心得,共同成長!

作者: feisir

出處:cnblogs.com/feisir/articles/18888893
聲明:網(wǎng)絡(luò)內(nèi)容,僅供學(xué)習(xí),尊重版權(quán),侵權(quán)速刪,歉意致謝!


該文章在 2025/6/23 14:22:18 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲(chǔ)管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

91精品二十一区| 免费网址无码人妻中文| 人妻av电影久久久久| 欧美胖女人日毴| 波多野结衣和黑人区| 激情五月婷婷五月激情视频| 日本无码高清一区不卡| 国产视频欧美日韩在线| 熟女 久久丫| 久艹AV电影| 91综合精品| 久久这里有| 亚洲50熟妇在线视频| 台湾一区二区三区视频| 婷婷亚洲五月av| 台湾五码一区| 午夜啪视频1| 亚洲图片偷拍一区二区| 日韩AV电影院| 亚洲最新综合色在线| 日韩欧美一区二区三区精品| 美日韩AV中文| 欧美丝袜视频一区二区三区四| 国产片(黄片王爱英)国产片| 大美女和大帅哥操逼网站| 欧美综合网内射| 国内精品性生活网址大全| 免费黄色小说网站在线观看| 曰本欧美久久久久网站| 日本福利专区精品| 日韩精品中文字幕无码沟沟| 午夜亚州成人综合网| 亚洲一区二ddjdb| 中文字幕久久视频| 九一一区二区插| 成人三极视频| 久久99精品久久久久久久夜夜嗨 | 艹比网站免费看看| 日本中文字幕在线不卡视频| 偷拍人体艺术视频一区二区三区| 蜜臀h视频|