DataGridView.VirtualMode プロパティとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > DataGridView.VirtualMode プロパティの意味・解説 

DataGridView.VirtualMode プロパティ

メモ : このプロパティは、.NET Framework version 2.0新しく追加されたものです。

DataGridView コントロールに対して独自のデータ管理操作指定したかどうかを示す値を取得または設定します

名前空間: System.Windows.Forms
アセンブリ: System.Windows.Forms (system.windows.forms.dll 内)
構文構文

Dim instance As DataGridView
Dim value As Boolean

value = instance.VirtualMode

instance.VirtualMode = value
public bool VirtualMode { get;
 set; }
public:
property bool VirtualMode {
    bool get ();
    void set (bool value);
}
/** @property */
public boolean get_VirtualMode ()

/** @property */
public void set_VirtualMode (boolean value)

プロパティ
DataGridView指定されデータ管理操作使用する場合trueそれ以外場合false既定値false です。

解説解説
使用例使用例

仮想モード使用して正の整数の表を作成するコード例次に示します

Imports System.IO
Imports System.Collections.Generic
Imports System.Windows.Forms

Public Class VirtualModeDemo
    Inherits System.Windows.Forms.Form

    Dim WithEvents dataGridView1 As
 New DataGridView

    Public Sub New()

        MyBase.New()

        Text = "DataGridView virtual-mode demo (cell-level commit
 scope)"

        Controls.Add(dataGridView1)
        dataGridView1.VirtualMode = True
        dataGridView1.AllowUserToDeleteRows = False
        dataGridView1.Columns.Add("Numbers", "Positive
 Numbers")
        dataGridView1.Rows.AddCopies(0, initialSize)

    End Sub

    Dim newRowNeeded As Boolean

    Private Sub dataGridView1_NewRowNeeded(ByVal
 sender As Object, _
        ByVal e As DataGridViewRowEventArgs)
 _
        Handles dataGridView1.NewRowNeeded

        newRowNeeded = True
    End Sub

    Const initialSize As Integer
 = 5000000
    Dim numberOfRows As Integer
 = initialSize

    Private Sub dataGridView1_RowsAdded(ByVal
 sender As Object, _
        ByVal e As DataGridViewRowsAddedEventArgs)
 _
        Handles dataGridView1.RowsAdded

        If newRowNeeded Then
            newRowNeeded = False
            numberOfRows = numberOfRows + 1
        End If
    End Sub

#Region "data store maintance"
    Const initialValue As Integer
 = -1

    Private Sub dataGridView1_CellValueNeeded(ByVal
 sender As Object, _
        ByVal e As DataGridViewCellValueEventArgs)
 _
        Handles dataGridView1.CellValueNeeded

        If store.ContainsKey(e.RowIndex) Then
            ' Use the store if the e value has been modified 
            ' and stored.
            e.Value = store(e.RowIndex)
        ElseIf newRowNeeded AndAlso e.RowIndex
 = numberOfRows Then
            If dataGridView1.IsCurrentCellInEditMode Then
                e.Value = initialValue
            Else
                ' Show a blank value if the cursor is just resting
                ' on the last row.
                e.Value = String.Empty
            End If
        Else
            e.Value = e.RowIndex
        End If
    End Sub

    Private Sub dataGridView1_CellValuePushed(ByVal
 sender As Object, _
        ByVal e As DataGridViewCellValueEventArgs)
 _
        Handles dataGridView1.CellValuePushed

        store.Add(e.RowIndex, CInt(e.Value))

    End Sub
#End Region

    Dim store As System.Collections.Generic.Dictionary(Of
 Integer, Integer) = _
        New Dictionary(Of Integer,
 Integer)

    Private Sub dataGridView1_CellValidating(ByVal
 sender As Object, _
        ByVal e _
        As DataGridViewCellValidatingEventArgs) _
        Handles dataGridView1.CellValidating

        Me.dataGridView1.Rows(e.RowIndex).ErrorText = ""
        Dim newInteger As Integer

        ' Don't try to validate the 'new row' until finished 
        ' editing since there
        ' is not any point in validating its initial value.
        If dataGridView1.Rows(e.RowIndex).IsNewRow Then
 Return
        If Not Integer.TryParse(e.FormattedValue.ToString(),
 newInteger) _
            OrElse newInteger < 0 Then

            e.Cancel = True
            Me.dataGridView1.Rows(e.RowIndex).ErrorText = "the
 value must be a non-negative integer"

        End If
    End Sub

    <STAThreadAttribute()> _
    Public Shared Sub Main()
        Application.Run(New VirtualModeDemo())
    End Sub
End Class
using System.IO;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Drawing;
using System;

public class VirtualModeDemo : Form
{
    DataGridView dataGridView1 = new DataGridView();

    public VirtualModeDemo()
        : base()
    {
        Text = "DataGridView virtual-mode demo (cell-level commit scope)";
        dataGridView1.NewRowNeeded +=
            new DataGridViewRowEventHandler(dataGridView1_NewRowNeeded);
        dataGridView1.RowsAdded +=
            new DataGridViewRowsAddedEventHandler(dataGridView1_RowsAdded);
        dataGridView1.CellValidating +=
            new DataGridViewCellValidatingEventHandler(dataGridView1_CellValidating);
        dataGridView1.CellValueNeeded +=
            new DataGridViewCellValueEventHandler(dataGridView1_CellValueNeeded);
        dataGridView1.CellValuePushed +=
            new DataGridViewCellValueEventHandler(dataGridView1_CellValuePushed);

        Controls.Add(dataGridView1);
        dataGridView1.VirtualMode = true;
        dataGridView1.AllowUserToDeleteRows = false;
        dataGridView1.Columns.Add("Numbers", "Positive Numbers");
        dataGridView1.Rows.AddCopies(0, initialSize);
    }

    bool newRowNeeded;
    private void dataGridView1_NewRowNeeded(object
 sender,
        DataGridViewRowEventArgs e)
    {
        newRowNeeded = true;
    }

    const int initialSize = 5000000;
    int numberOfRows = initialSize;

    private void dataGridView1_RowsAdded(object
 sender,
         DataGridViewRowsAddedEventArgs e)
    {
        if (newRowNeeded)
        {
            newRowNeeded = false;
            numberOfRows = numberOfRows + 1;
        }
    }

    #region "data store maintance"
    const int initialValue = -1;

    private void dataGridView1_CellValueNeeded(object
 sender,
        DataGridViewCellValueEventArgs e)
    {
        if (store.ContainsKey(e.RowIndex))
        {
            // Use the store if the e value has been modified 
            // and stored.            
            e.Value = store[e.RowIndex];
        }
        else if (newRowNeeded && e.RowIndex
 == numberOfRows)
        {
            if (dataGridView1.IsCurrentCellInEditMode)
            {
                e.Value = initialValue;
            }
            else
            {
                // Show a blank value if the cursor is just resting
                // on the last row.
                e.Value = String.Empty;
            }
        }
        else
        {
            e.Value = e.RowIndex;
        }
    }

    private void dataGridView1_CellValuePushed(object
 sender,
        DataGridViewCellValueEventArgs e)
    {
        store.Add(e.RowIndex, int.Parse(e.Value.ToString()));
    }
    #endregion

    private Dictionary<int, int>
 store = new Dictionary<int, int>();

    private void dataGridView1_CellValidating(object
 sender,
        DataGridViewCellValidatingEventArgs e)
    {
        dataGridView1.Rows[e.RowIndex].ErrorText = "";
        int newInteger;

        // Don't try to validate the 'new row' until finished 
        // editing since there
        // is not any point in validating its initial value.
        if (dataGridView1.Rows[e.RowIndex].IsNewRow) { return;
 }
        if (!int.TryParse(e.FormattedValue.ToString()
,
            out newInteger) || newInteger < 0)
        {
            e.Cancel = true;
            dataGridView1.Rows[e.RowIndex].ErrorText = "the value must be a
 non-negative integer";
        }
    }

    [STAThreadAttribute()]
    public static void Main()
    {
        Application.Run(new VirtualModeDemo());
    }
}
import System.IO.*;
import System.Collections.Generic.*;
import System.Windows.Forms.*;
import System.Drawing.*;
import System.*;

public class Virtual extends Form
{
    private DataGridView dataGridView1 = new
 DataGridView();

    public Virtual()
    {
        set_Text(this.GetType().get_Name());
        dataGridView1.add_NewRowNeeded(new DataGridViewRowEventHandler(
            dataGridView1_NewRowNeeded));
        dataGridView1.add_RowsAdded(new DataGridViewRowsAddedEventHandler(
            dataGridView1_RowsAdded));
        dataGridView1.add_CellValidating(
            new DataGridViewCellValidatingEventHandler(
            dataGridView1_CellValidating));
        dataGridView1.add_CellValueNeeded(
            new DataGridViewCellValueEventHandler(
            dataGridView1_CellValueNeeded));
        dataGridView1.add_CellValuePushed(
            new DataGridViewCellValueEventHandler(
            dataGridView1_CellValuePushed));

        try {
            get_Controls().Add(dataGridView1);
            dataGridView1.set_VirtualMode(true);
            dataGridView1.set_AllowUserToDeleteRows(false);
            dataGridView1.get_Columns().Add("Numbers", "Positive Numbers");
            dataGridView1.get_Rows().AddCopies(0, INITIALSIZE);
        }
        catch (System.Exception ex) {
            MessageBox.Show("Exception occured: " + ex.ToString());
        }
    } //Virtual

    private boolean newRowNeeded;

    private void dataGridView1_NewRowNeeded(Object
 sender,
        DataGridViewRowEventArgs e)
    {
        newRowNeeded = true;
    } //dataGridView1_NewRowNeeded

    private final int INITIALSIZE = 5000000;
    private int numberOfRows = INITIALSIZE;

    private void dataGridView1_RowsAdded(Object
 sender,
        DataGridViewRowsAddedEventArgs e)
    {
        if (newRowNeeded) {
            newRowNeeded = false;
            numberOfRows = numberOfRows + 1;
        }
    } //dataGridView1_RowsAdded

    #region "data store maintance"
    private final int INITIALVALUE = -1;

    private void dataGridView1_CellValueNeeded(Object
 sender,
        DataGridViewCellValueEventArgs e)
    {
        if (store.ContainsKey(e.get_RowIndex())) {
            // Use the store if the e value has been modified 
            // and stored.            
            e.set_Value((Int32)store.get_Item(e.get_RowIndex()));
        }
        else {
            if (newRowNeeded && e.get_RowIndex() == numberOfRows)
 {
                if (dataGridView1.get_IsCurrentCellInEditMode())
 {
                    e.set_Value((Int32)INITIALVALUE);
                }
                else {
                    // Show a blank e if the cursor is just loitering
                    // over(the)
                    // last row.
                    e.set_Value("");
                }
            }
            else {
                e.set_Value((Int32)e.get_RowIndex());
            }
        }
    } //dataGridView1_CellValueNeeded

    private void dataGridView1_CellValuePushed(Object
 sender,
        DataGridViewCellValueEventArgs e)
    {
        store.Add(e.get_RowIndex(), Int32.Parse(e.get_Value().ToString()));
    } //dataGridView1_CellValuePushed
    #endregion

    private Dictionary<int, int>
 store = new Dictionary<int, int>();

    private void dataGridView1_CellValidating(Object
 sender,
        DataGridViewCellValidatingEventArgs e)
    {
        int newInteger = 0;
        // Don't try to validate the 'new row' until finished 
        // editing since there
        // is not any point in validating its initial value.
        if (dataGridView1.get_Rows().get_Item(
            e.get_RowIndex()).get_IsNewRow()) {
            return;
        }
        if (!(Int32.TryParse(e.get_FormattedValue().ToString(),
 newInteger)) 
            || newInteger < 0) {
            e.set_Cancel(true);
        }
    } //dataGridView1_CellValidating

    public static void main(String[]
 args)
    {
        Application.Run(new Virtual());
    } //main
} //Virtual
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照


このページでは「.NET Framework クラス ライブラリ リファレンス」からDataGridView.VirtualMode プロパティを検索した結果を表示しています。
Weblioに収録されているすべての辞書からDataGridView.VirtualMode プロパティを検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からDataGridView.VirtualMode プロパティ を検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「DataGridView.VirtualMode プロパティ」の関連用語

DataGridView.VirtualMode プロパティのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



DataGridView.VirtualMode プロパティのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS