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

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

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

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

需求提出

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

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

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

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

  • 有的建議重寫 DataGridViewButtonColumn

  • 有的推薦自定義控件;

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

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

于是我陷入了沉思……

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

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

用戶判斷一個按鈕是否"禁用",很多時候是靠視覺感知的。也就是說,只要按鈕看起來像是"被禁用了",用戶就不會去點它!

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

實現(xiàn)思路

使用 CellFormatting 事件模擬禁用樣式

我們可以通過 DataGridView.CellFormatting 事件,在特定條件下對按鈕單元格進(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)用于判斷是否禁用。

看一下效果

?

在點擊事件中加一層邏輯判斷

雖然樣式已經(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í)行上傳文件等實際邏輯
        }
    }
}

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

效果展示

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

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

  • 用戶看到后自然不會點擊;

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

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

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

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

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

結(jié)語

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

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

如果這個方法剛好幫到了你,不如點個贊讓我也"看起來像被鼓勵過"吧!

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

最后
如果你覺得這篇文章對你有幫助,不妨點個贊支持一下!你的支持是我繼續(xù)分享知識的動力。如果有任何疑問或需要進(jìn)一步的幫助,歡迎隨時留言。也可以加入微信公眾號[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)文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務(wù)費用、相關(guān)報表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務(wù)都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

在线亚洲-AV| 人妻熟女区| 日本www尤物无码| 呦呦独家视频在线播放| 欧美不卡无码| AV色鬼区| 亚洲性色av一区二区黑丝袜| 欧美少妇激情视频| 欧美一级特黄视频| 欧美大黄骚逼视频| 久久秘精品| 中文字幕日韩久久久女| 色吧视频久久| 日韩一区二区三区电影成人| 性生活三区| 中文字幕人妻久久精品一区二区| 99热色欲综大香蕉| 欧美亚洲内射视频在线观看| 高潮少妇重口味| 日本特黄一级大片| 欧美一区二区成人视频| 猛操逼大几把| 欧美一射| 国产xxx欧美口交| 夜夜夜夜夜夜夜夜夜夜夜夜夜夜亚洲| 亚洲精品一线久久蜜臀av| 欧美午夜精品久久久久久蜜| aⅴ久久丝袜综合| 黄色水说视频| 青娱乐极品盛宴一区二区三区| 香蕉视频三级片黄色| 97欧美精品自拍网站| 草porn最新网址| 亚洲蜜穴超碰| 狠狠干免费| 静静在线精品| 久久久久久久久久午夜视频| 国产天堂a| 伊人大香蕉678| 国产成人福利av| 综合av不卡|