主頁 > 移動端開發 > 如何在Datagridview中添加未提交的空白行?

如何在Datagridview中添加未提交的空白行?

2022-06-15 05:43:54 移動端開發

我正在手動填充datagridview。所以沒有資料源或資料系結。
AllowUserToAddRows堅持True_ AllowUserToDeleteRows_True

我的作業和代碼

  • 當 Enter 鍵轉到右側的下一個單元格而不是向下時,我進行了調整以使用我的 datagridview。

     Private WithEvents ec As DataGridViewTextBoxEditingControl
    

和,

   Protected Overrides Function ProcessCmdKey(ByRef msg As Message, ByVal keyData As Keys) As Boolean
    If keyData = Keys.Tab AndAlso DgvGrid.EditingControl IsNot Nothing Then
        Return True
    Else
        Return MyBase.ProcessCmdKey(msg, keyData)
    End If
    Return Nothing
   End Function

還,

    Private Sub dgvGrid_KeyDown(sender As Object, e As KeyEventArgs) Handles DgvGrid.KeyDown
    Try
        Dim iCol = DgvGrid.CurrentCell.ColumnIndex
        Dim iRow = DgvGrid.CurrentCell.RowIndex
        Select Case e.KeyCode
            Case Keys.Return
                e.Handled = True
                If iCol = DgvGrid.Columns.Count - 1 Then
                    If DgvGrid.Rows(iRow).Cells("TCODE").Value = "" Then
                        MessageBox.Show("ENTER DETAILS AGAIN", MessageBoxButtons.OK, MessageBoxIcon.Warning)
                        DgvGrid.CurrentCell = DgvGrid("TREATMENT", iRow)
                    Else
                        DgvGrid.CurrentCell = DgvGrid("TREATMENT", iRow   1)
                    End If
                Else
                    If iCol = 2 Then '#TREATMENT
                        If DgvGrid.Rows(iRow).Cells("TCODE").Value = "" Then
                            'CalculateData
                        Else
                            DgvGrid.CurrentCell = DgvGrid(iCol   1, iRow)
                        End If
                    ElseIf iRow = DgvGrid.Rows.Count - 1 Then
                        DgvGrid.Rows.Add() '------------- ISSUE IS HERE
                        'DgvGrid.BeginEdit(True)
                    Else
                        DgvGrid.CurrentCell = DgvGrid(iCol   1, iRow)
                    End If
                End If
        End Select

        If e.Shift AndAlso e.KeyCode = Keys.Delete Then
            If DgvGrid.SelectedCells.Count > 0 Then
                DgvGrid.Rows.RemoveAt(DgvGrid.CurrentCell.RowIndex)
            End If
        End If
    Catch ex1 As System.InvalidOperationException
        MessageBox.Show("CANNOT DELETE LAST ROW.", "BONNY SOFTWARE", MessageBoxButtons.OK, MessageBoxIcon.Error)
    Catch ex As Exception
        MessageBox.Show("TAKE A PICTURE" & Environment.NewLine & "ERROR : " & ex.Message, "BONNY SOFTWARE", MessageBoxButtons.OK, MessageBoxIcon.Error)
    End Try
   End Sub

最后的,

    Private Sub ec_PreviewKeyDown(ByVal sender As Object, ByVal e As PreviewKeyDownEventArgs) Handles ec.PreviewKeyDown
    Try
        Dim iCol = DgvGrid.CurrentCell.ColumnIndex
        Dim iRow = DgvGrid.CurrentCell.RowIndex
        Select Case e.KeyCode
            Case Keys.Return
                e.Handled = True
                If iCol = DgvGrid.Columns.Count - 1 Then
                    If DgvGrid.Rows(iRow).Cells("TCODE").Value = "" Then
                        MessageBox.Show("ENTER DETAILS AGAIN", MessageBoxButtons.OK, MessageBoxIcon.Warning)
                        DgvGrid.CurrentCell = DgvGrid("TREATMENT", iRow)
                    Else
                        DgvGrid.CurrentCell = DgvGrid("TREATMENT", iRow   1)
                    End If
                Else
                    If iCol = 2 Then '#TREATMENT
                        If DgvGrid.Rows(iRow).Cells("TCODE").Value = "" Then
                            'CalculateData
                        Else
                            DgvGrid.CurrentCell = DgvGrid(iCol   1, iRow)
                        End If
                    ElseIf iRow = DgvGrid.Rows.Count - 1 Then
                        DgvGrid.Rows.Add() '------------- ISSUE IS HERE
                        'DgvGrid.BeginEdit(True)
                    Else
                        DgvGrid.CurrentCell = DgvGrid(iCol   1, iRow)
                    End If
                End If
        End Select

        If e.Shift AndAlso e.KeyCode = Keys.Delete Then
            If DgvGrid.SelectedCells.Count > 0 Then
                DgvGrid.Rows.RemoveAt(DgvGrid.CurrentCell.RowIndex)
            End If
        End If
    Catch ex1 As System.InvalidOperationException
        MessageBox.Show("CANNOT DELETE LAST ROW.", "BONNY SOFTWARE", MessageBoxButtons.OK, MessageBoxIcon.Error)
    Catch ex As Exception
        MessageBox.Show("TAKE A PICTURE" & Environment.NewLine & "ERROR : " & ex.Message, "BONNY SOFTWARE", MessageBoxButtons.OK, MessageBoxIcon.Error)
    End Try
   End Sub

請注意,當 cellEdit 處于活動狀態時,DatagridviewKeyDownec_PreviewKeyDown事件與我想要的效果相同。

ISSUE 當我在最后一行的最后一列并嘗試添加一行代碼時DgvGrid.Rows.Add(),該行被添加到上面,或者可能發生其他事情,將上面的行留空,如下圖所示

如何在 Datagridview 中添加未提交的空白行?

但是,如果我編輯單元格并鍵入一些內容,則會自動創建一個新的未提交行,并且在按下 Enter/Return 時它作業正常。如下圖所示

如何在 Datagridview 中添加未提交的空白行?

但即使 datagridviewCell 處于 EditMode,也不會生成新的未提交行。它僅在我鍵入內容或更改值時生成。

如果我只能得到未提交的行而不進行編輯,那么我的作業就完成了。

接受任何其他方法/建議。謝謝

uj5u.com熱心網友回復:

在我的小測驗中,我很好奇的一件事是“如何”將行添加到第一張圖片中的網格中?...

如何在 Datagridview 中添加未提交的空白行?

具體來說,最上面的第一個網格……在某種意義上看起來很奇怪…… “新行在哪里?” ...考慮到網格AllowUserToAdd行屬性設定為true...然后用戶顯然沒有將資料“鍵入”到網格中。

那么,我們只能假設資料是以編程方式添加到網格中的嗎?而且......我可以讓網格看起來如頂部所示的唯一方法是,如果我以編程方式將資料添加到網格中的單個單元格“新”并且只有行......類似于......

DgvGrid.Rows(0).Cells(0).Value = “SomeValue”….

正如我們所看到的,這很可能會顯示在最后一行,但是,手動將資料添加到網格的“新”行會出現問題……簡而言之……您不想這樣做。

您可以從您的示例中看到,如果您在“之后”某個時候“添加”一個新行,我們將資料添加到“新”行,那么,帶有我們之前添加的資料的行仍然在網格“新”行中……在剛剛添加的行下方……如您的圖片所示。

在沒有技術知識的情況下,網格“新”行是一個“特殊”行,并不是真正要以編程方式添加資料的行。例子; 如果您在網格的最后一個“新”行的單元格中鍵入單個字符……那么您會注意到,只要您在單元格中鍵入單個字符,網格就會“自動創建”一個新行和該行您剛剛輸入的不再是“新”行。當您的代碼手動將資料添加到“新”行時,不會觸發網格來創建“新”行。這就是您的代碼需要做的……即添加一個新行。

基本上,將資料添加到網格的代碼......做錯了。無論該代碼做什么,很明顯它應該首先添加一個新行,而不是以編程方式將資料添加到網格的“新”行。


此外,我之前看到過這樣的情況,當用戶按下“Enter”鍵時,您希望將網格選擇的行為更改為向右移動,而不是向下移動。我不會否認,它比看起來要復雜一些。下面的代碼將選擇向右移動,并在需要時添加一個新行,如下所示。

如何在 Datagridview 中添加未提交的空白行?

下面是我的方法,如果用戶按下“Enter”鍵,選擇將移動到右側的單元格而不是向下,此外......如果選擇位于 LAST “new”的最后一個單元格中”行,無論單元格是否處于編輯模式,并且用戶按下“Enter”鍵,然后,創建一個新行。我不一定會這樣做,因為如果用戶在最后一個“新”行上反復按下回車鍵,代碼將繼續添加“空”行。但我猜你想要這種行為。

為了簡化事情,我過去常常SendKeys“移動”選擇,而不是設定網格的CurrentCell行和列索引。換句話說,我們已經知道如果用戶按下“Enter”鍵,那么網格的“正常”選擇/CurrentCell 將“向下”移動到下一個單元格。所以,我們只需要發送一個“Tab”鍵,然后一個“UP”箭頭鍵就可以在右側獲得我們想要的選擇。

顯然,我們需要檢查邊界問題,例如最后一列和最后一個“新”行。在最后一列的情況下,網格的選擇會簡單地向下移動,我們只需要發送“HOME”鍵就可以選擇該行的第一個單元格。

如果選擇在最后一個“新”行和最后一列,那么我們可以假設該行的任何單元格中都沒有資料……如果用戶在該行的單元格中鍵入了資料,那么這個行不會是最后一行。因此,用戶必須多次按下“Enter”鍵,而無需在任何單元格中輸入任何文本……或者正如您所做的那樣……以編程方式將資料添加到“新”行。我們將假設代碼沒有像當前那樣執行此操作,而是按照應有的方式正確“添加”行。否則,新行將在您顯示的頂部。

因此,鑒于此并為了簡化代碼,我們將創建一個方法,當用戶按下“Enter”鍵時,將選擇移動到右側的單元格。

KeyDown當單元格不處于“編輯模式”時,GRIDS事件和單元格處于“編輯模式”時的單元TextBoxPreviewKeyDown事件都會呼叫此方法。這個方法只假設一件事……用戶只是按下了 ENTER 鍵。單元格是否處于編輯模式并不重要。

MoveGridSelection方法可能類似于下面的演練。

Private Sub MoveGridSelection()
  If DgvGrid.CurrentCell IsNot Nothing Then
    If (DgvGrid.CurrentCell.ColumnIndex < DgvGrid.Columns.Count - 1) Then
      If (Not (DgvGrid.CurrentCell.RowIndex = DgvGrid.NewRowIndex)) Then
        SendKeys.Send("{Up}")
      End If
      SendKeys.Send("{Tab}")
    Else  ' current cell is LAST column
      If (DgvGrid.CurrentCell.RowIndex = DgvGrid.NewRowIndex) Then
        ' last cell on last 'new' row - do nothing and stay there
        '   Or set the selection back to the top
        '   Or add a New row as below ..? Not a good idea IMO
        DgvGrid.Rows.Add()
      End If
      SendKeys.Send("{Home}")
    End If
  End If
End Sub

演練:如果網格CurrentCell列索引小于列數,那么……通常我們可以發送“Tab”和“UP”鍵向右移動……除非單元格位于最后一個“新”行……在這種情況下,我們只想發送“Tab”鍵向右移動,不發送“UP”鍵。因此,我們檢查該行是否不是“新”行,然后我們發送額外的“UP”鍵。

如果CurrentCell當用戶按下回車鍵時網格列索引是最后一列,那么網格的選擇將移動“向下”,因此我們只需發送“HOME”鍵即可將選擇移動到該行的第一個單元格......除非選擇已經在最后一個“新”行上。在這種情況下,我們必須做出決定,我們可以將選擇移動到左上角,或者什么都不做,或者添加一個新行。在這種情況下,代碼會添加一個新行,因為我認為這是您想要的。

因此,我們再次檢查該行是否是最后一個“新”行,如果是,我們將新行添加到網格中。添加行后,我們發送“HOME”鍵將選擇設定為“新”行中的第一個單元格。

我們將能夠使用幾個網格事件在幾個地方使用這個方法。下面是我們將使用的網格事件以及為什么需要使用它們的簡要總結。

首先是 GRID 的“KeyDown”事件。此事件專門用于當單元格未處于“編輯模式”并且用戶按下“Enter”鍵時。

Private Sub DgvGrid_KeyDown(sender As Object, e As KeyEventArgs) Handles DgvGrid.KeyDown
  If e.KeyCode = Keys.Enter Then
    MoveGridSelection()
  Else
    If e.Shift AndAlso e.KeyCode = Keys.Delete Then
      DeleteCurrentRow()
    End If
  End If
End Sub

接下來,我們需要捕捉按下“Enter”鍵并且單元格處于“編輯模式”的時間。我相信你已經知道了……KeyDown當用戶“編輯”一個單元格時,grids 事件不會觸發,這是有道理的,因為網格的編輯器正在捕獲單元格的鍵。

通常,我們會使用 gridsEditingControlShowing事件來提供幫助。當它觸發時,一個單元格將進入“編輯模式”。我們可以將網格單元轉換為泛型TextBox,然后訂閱該文本框KeyDown事件。這就是阻止用戶在數字單元格中輸入字母字符的方法。不幸的是,即使在這種情況下,KeyDown如果按下“Enter”鍵,事件也不會觸發。幸運的是,TextBoxes PreviewKeyDown按下“Enter”鍵時會觸發該事件。

EditingControlShowing所以,當單元格進入“編輯模式”時,我們需要 grids事件來連接這個事件。為了提供幫助,我們將創建一個TextBox名為的全域變數EditedCell,當單元格進入“編輯模式”時,我們將該單元格轉換為全域文本框,連接文本框PreviewKeyDown事件,然后等待用戶按下“Enter”鍵. 它可能看起來像……

Private WithEvents EditedCell As TextBox = Nothing


Private Sub DgvGrid_EditingControlShowing(sender As Object, e As DataGridViewEditingControlShowingEventArgs) Handles DgvGrid.EditingControlShowing
  EditedCell = CType(e.Control, TextBox)
  RemoveHandler EditedCell.PreviewKeyDown, AddressOf EditedCell_PreviewKeyDown
  AddHandler EditedCell.PreviewKeyDown, AddressOf EditedCell_PreviewKeyDown
End Sub

接下來,我們需要實作這個EditedCell_PreviewKeyDown事件。像 gridsKeyDown事件一樣,我們只需要檢查是否按下了“Enter”鍵,如果是,那么我們呼叫之前的方法來移動選擇。此外,由于用戶按下“Enter”鍵,我們也知道單元格將結束其編輯模式,因此我們不再需要全域文本框或其事件。因此,我們取消連接事件并將文本框設定為null. 如果我們不這樣做,那么事件可能會意外觸發。

Private Sub EditedCell_PreviewKeyDown(sender As Object, e As PreviewKeyDownEventArgs) Handles EditedCell.PreviewKeyDown
  If (e.KeyCode.Equals(Keys.Enter)) Then
    MoveGridSelection()
    RemoveHandler EditedCell.PreviewKeyDown, AddressOf EditedCell_PreviewKeyDown
    EditedCell = Nothing
  Else
    If e.Shift AndAlso e.KeyCode = Keys.Delete Then
      DeleteCurrentRow()
    End If
  End If
End Sub

這應該是我們需要讓選擇向右移動而不是向下移動。

如果按下 Shift-Del 鍵,一些缺失的代碼會洗掉選定的行。

Private Sub DeleteCurrentRow()
  If DgvGrid.SelectedCells.Count > 0 Then
    If Not DgvGrid.CurrentCell.RowIndex = DgvGrid.NewRowIndex Then
      DgvGrid.Rows.RemoveAt(DgvGrid.CurrentCell.RowIndex)
    End If
  End If
End Sub

最后,我對此進行了測驗,但是,我相信我可能遺漏了一些明顯的東西。所以請告訴我。

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/490841.html

標籤:VB.net 表格 数据网格视图

上一篇:您可以為Func或Action型別的函式或子引數指定默認值嗎?

下一篇:無法在VB.NET中打開PDF檔案

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【從零開始擼一個App】Dagger2

    Dagger2是一個IOC框架,一般用于Android平臺,第一次接觸的朋友,一定會被搞得暈頭轉向。它延續了Java平臺Spring框架代碼碎片化,注解滿天飛的傳統。嘗試將各處代碼片段串聯起來,理清思緒,真不是件容易的事。更不用說還有各版本細微的差別。 與Spring不同的是,Spring是通過反射 ......

    uj5u.com 2020-09-10 06:57:59 more
  • Flutter Weekly Issue 66

    新聞 Flutter 季度調研結果分享 教程 Flutter+FaaS一體化任務編排的思考與設計 詳解Dart中如何通過注解生成代碼 GitHub 用對了嗎?Flutter 團隊分享如何管理大型開源專案 插件 flutter-bubble-tab-indicator A Flutter librar ......

    uj5u.com 2020-09-10 06:58:52 more
  • Proguard 常用規則

    介紹 Proguard 入口,如何查看輸出,如何使用 keep 設定入口以及使用實體,如何配置壓縮,混淆,校驗等規則。

    ......

    uj5u.com 2020-09-10 06:59:00 more
  • Android 開發技術周報 Issue#292

    新聞 Android即將獲得類AirDrop功能:可向附近設備快速分享檔案 谷歌為安卓檔案管理應用引入可安全隱藏資料的Safe Folder功能 Android TV新主界面將顯示電影、電視節目和應用推薦內容 泄露的Android檔案暗示了傳說中的谷歌Pixel 5a與折疊屏新機 谷歌發布Andro ......

    uj5u.com 2020-09-10 07:00:37 more
  • AutoFitTextureView Error inflating class

    報錯: Binary XML file line #0: Binary XML file line #0: Error inflating class xxx.AutoFitTextureView 解決: <com.example.testy2.AutoFitTextureView android: ......

    uj5u.com 2020-09-10 07:00:41 more
  • 根據Uri,Cursor沒有獲取到對應的屬性

    Android: 背景:呼叫攝像頭,拍攝視頻,指定保存的地址,但是回傳的Cursor檔案,只有名稱和大小的屬性,沒有其他諸如時長,連ID屬性都沒有 使用 cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DURATIO ......

    uj5u.com 2020-09-10 07:00:44 more
  • Android連載29-持久化技術

    一、持久化技術 我們平時所使用的APP產生的資料,在記憶體中都是瞬時的,會隨著斷電、關機等丟失資料,因此android系統采用了持久化技術,用于存盤這些“瞬時”資料 持久化技術包括:檔案存盤、SharedPreference存盤以及資料庫存盤,還有更復雜的SD卡記憶體儲。 二、檔案存盤 最基本存盤方式, ......

    uj5u.com 2020-09-10 07:00:47 more
  • Android Camera2Video整合到自己專案里

    背景: Android專案里呼叫攝像頭拍攝視頻,原本使用的 MediaStore.ACTION_VIDEO_CAPTURE, 后來因專案需要,改成了camera2 1.Camera2Video 官方demo有點問題,下載后,不能直接整合到專案 問題1.多次拍攝視頻崩潰 問題2.雙擊record按鈕, ......

    uj5u.com 2020-09-10 07:00:50 more
  • Android 開發技術周報 Issue#293

    新聞 谷歌為Android TV開發者提供多種新功能 Android 11將自動填表功能整合到鍵盤輸入建議中 谷歌宣布Android Auto即將支持更多的導航和數字停車應用 谷歌Pixel 5只有XL版本 搭載驍龍765G且將比Pixel 4更便宜 [圖]Wear OS將迎來重磅更新:應用啟動時間 ......

    uj5u.com 2020-09-10 07:01:38 more
  • 海豚星空掃碼投屏 Android 接收端 SDK 集成 六步驟

    掃碼投屏,開放網路,獨占設備,不需要額外下載軟體,微信掃碼,發現設備。支持標準DLNA協議,支持倍速播放。視頻,音頻,圖片投屏。好點意思。還支持自定義基于 DLNA 擴展的操作動作。好像要收費,沒體驗。 這里簡單記錄一下集成程序。 一 跟目錄的build.gradle添加私有mevan倉庫 mave ......

    uj5u.com 2020-09-10 07:01:43 more
最新发布
  • 歡迎頁輪播影片

    如圖,引導開始,球從上落下,同時淡入文字,然后文字開始輪播,最后一頁時停止,點擊進入首頁。 在來看看效果圖。 重力球先不講,主要歡迎輪播簡單實作 首先新建一個類 TextTranslationXGuideView,用于影片展示 文本是類似的,最后會有個圖片箭頭影片,布局很簡單,就是一個 TextVi ......

    uj5u.com 2023-04-20 08:40:31 more
  • 【FAQ】關于華為推送服務因營銷訊息頻次管控導致服務通訊類訊息

    一. 問題描述 使用華為推送服務下發IM訊息時,下發訊息請求成功且code碼為80000000,但是手機總是收不到訊息; 在華為推送自助分析(Beta)平臺查看發現,訊息發送觸發了頻控。 二. 問題原因及背景 2023年1月05日起,華為推送服務對咨詢營銷類訊息做了單個設備每日推送數量上限管理,具體 ......

    uj5u.com 2023-04-20 08:40:11 more
  • 歡迎頁輪播影片

    如圖,引導開始,球從上落下,同時淡入文字,然后文字開始輪播,最后一頁時停止,點擊進入首頁。 在來看看效果圖。 重力球先不講,主要歡迎輪播簡單實作 首先新建一個類 TextTranslationXGuideView,用于影片展示 文本是類似的,最后會有個圖片箭頭影片,布局很簡單,就是一個 TextVi ......

    uj5u.com 2023-04-20 08:39:36 more
  • 【FAQ】關于華為推送服務因營銷訊息頻次管控導致服務通訊類訊息

    一. 問題描述 使用華為推送服務下發IM訊息時,下發訊息請求成功且code碼為80000000,但是手機總是收不到訊息; 在華為推送自助分析(Beta)平臺查看發現,訊息發送觸發了頻控。 二. 問題原因及背景 2023年1月05日起,華為推送服務對咨詢營銷類訊息做了單個設備每日推送數量上限管理,具體 ......

    uj5u.com 2023-04-20 08:39:13 more
  • iOS從UI記憶體地址到讀取成員變數(oc/swift)

    開發除錯時,我們發現bug時常首先是從UI顯示發現例外,下一步才會去定位UI相關連的資料的。XCode有給我們提供一系列debug工具,但是很多人可能還沒有形成一套穩定的除錯流程,因此本文嘗試解決這個問題,順便提出一個暴論:UI顯示例外問題只需要兩個步驟就能完成定位作業的80%: 定位例外 UI 組 ......

    uj5u.com 2023-04-19 09:16:23 more
  • FIDE重磅更新!性能飛躍!體驗有禮!

    FIDE 開發者工具重構升級啦!實作500%性能提升,誠邀體驗! 一直以來不少開發者朋友在社區反饋,在使用 FIDE 工具的程序中,時常會遇到諸如加載不及時、代碼預覽/渲染性能不如意的情況,十分影響開發體驗。 作為技術團隊,我們深知一件趁手的開發工具對開發者的重要性,因此,在2023年開年,FinC ......

    uj5u.com 2023-04-19 09:16:15 more
  • 游戲內嵌社區服務開放,助力開發者提升玩家互動與留存

    華為 HMS Core 游戲內嵌社區服務提供快速訪問華為游戲中心論壇能力,支持玩家直接在游戲內瀏覽帖子和交流互動,助力開發者擴展內容生產和觸達的場景。 一、為什么要游戲內嵌社區? 二、游戲內嵌社區的典型使用場景 1、游戲內打開論壇 您可以在游戲內繪制論壇入口,為玩家提供沉浸式發帖、瀏覽、點贊、回帖、 ......

    uj5u.com 2023-04-19 09:15:46 more
  • iOS從UI記憶體地址到讀取成員變數(oc/swift)

    開發除錯時,我們發現bug時常首先是從UI顯示發現例外,下一步才會去定位UI相關連的資料的。XCode有給我們提供一系列debug工具,但是很多人可能還沒有形成一套穩定的除錯流程,因此本文嘗試解決這個問題,順便提出一個暴論:UI顯示例外問題只需要兩個步驟就能完成定位作業的80%: 定位例外 UI 組 ......

    uj5u.com 2023-04-19 09:14:53 more
  • FIDE重磅更新!性能飛躍!體驗有禮!

    FIDE 開發者工具重構升級啦!實作500%性能提升,誠邀體驗! 一直以來不少開發者朋友在社區反饋,在使用 FIDE 工具的程序中,時常會遇到諸如加載不及時、代碼預覽/渲染性能不如意的情況,十分影響開發體驗。 作為技術團隊,我們深知一件趁手的開發工具對開發者的重要性,因此,在2023年開年,FinC ......

    uj5u.com 2023-04-19 09:14:08 more
  • 游戲內嵌社區服務開放,助力開發者提升玩家互動與留存

    華為 HMS Core 游戲內嵌社區服務提供快速訪問華為游戲中心論壇能力,支持玩家直接在游戲內瀏覽帖子和交流互動,助力開發者擴展內容生產和觸達的場景。 一、為什么要游戲內嵌社區? 二、游戲內嵌社區的典型使用場景 1、游戲內打開論壇 您可以在游戲內繪制論壇入口,為玩家提供沉浸式發帖、瀏覽、點贊、回帖、 ......

    uj5u.com 2023-04-19 09:08:34 more