정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

방법: Windows Forms DataGridView 컨트롤에서 데이터 형식 사용자 지정

업데이트: 2007년 11월

다음 코드 예제에서는 셀의 열 및 값에 따라 셀의 표시 방법을 변경하는 DataGridView.CellFormatting 이벤트에 대한 처리기를 구현하는 방법을 보여 줍니다.

Balance 열에서 음수를 포함하는 셀은 배경색이 빨강입니다. 이러한 셀의 형식을 통화로 지정하여 음수 값을 괄호로 묶을 수도 있습니다. 자세한 내용은 방법: Windows Forms DataGridView 컨트롤의 데이터 형식 지정을 참조하십시오.

Priority 열의 셀에는 해당 텍스트 셀 값 대신 이미지가 표시됩니다. DataGridViewCellFormattingEventArgsValue 속성은 텍스트 셀 값을 가져오고 해당 이미지 표시 값을 설정하는 데 모두 사용됩니다.

using System;
using System.Drawing;
using System.Windows.Forms;

public class Form1 : Form
{
    private DataGridView dataGridView1 = new DataGridView();
    private Bitmap highPriImage;
    private Bitmap mediumPriImage;
    private Bitmap lowPriImage;

    public Form1()
    {
        // Initialize the images. 
        try
        {
            highPriImage = new Bitmap("highPri.bmp");
            mediumPriImage = new Bitmap("mediumPri.bmp");
            lowPriImage = new Bitmap("lowPri.bmp");
        }
        catch (ArgumentException)
        {
            MessageBox.Show("The Priority column requires Bitmap images " +
                "named highPri.bmp, mediumPri.bmp, and lowPri.bmp " +
                "residing in the same directory as the executable file.");
        }

        // Initialize the DataGridView.
        dataGridView1.Dock = DockStyle.Fill;
        dataGridView1.AllowUserToAddRows = false;
        dataGridView1.Columns.AddRange(
            new DataGridViewTextBoxColumn(),
            new DataGridViewImageColumn());
        dataGridView1.Columns[0].Name = "Balance";
        dataGridView1.Columns[1].Name = "Priority";
        dataGridView1.Rows.Add("-100", "high");
        dataGridView1.Rows.Add("0", "medium");
        dataGridView1.Rows.Add("100", "low");
        dataGridView1.CellFormatting +=
            new System.Windows.Forms.DataGridViewCellFormattingEventHandler(
            this.dataGridView1_CellFormatting);
        this.Controls.Add(dataGridView1);
    }

    // Changes how cells are displayed depending on their columns and values.
    private void dataGridView1_CellFormatting(object sender, 
        System.Windows.Forms.DataGridViewCellFormattingEventArgs e)
    {
        // Set the background to red for negative values in the Balance column.
        if (dataGridView1.Columns[e.ColumnIndex].Name.Equals("Balance"))
        {
            Int32 intValue;
            if (Int32.TryParse((String)e.Value, out intValue) && 
                (intValue < 0))
            {
                e.CellStyle.BackColor = Color.Red;
                e.CellStyle.SelectionBackColor = Color.DarkRed;
            }
        }

        // Replace string values in the Priority column with images.
        if (dataGridView1.Columns[e.ColumnIndex].Name.Equals("Priority"))
        {
            // Ensure that the value is a string.
            String stringValue = e.Value as string;
            if (stringValue == null) return;

            // Set the cell ToolTip to the text value.
            DataGridViewCell cell = dataGridView1[e.ColumnIndex, e.RowIndex];
            cell.ToolTipText = stringValue;

            // Replace the string value with the image value.
            switch (stringValue)
            {
                case "high":
                    e.Value = highPriImage;
                    break;
                case "medium":
                    e.Value = mediumPriImage;
                    break;
                case "low":
                    e.Value = lowPriImage;
                    break;
            }
        }
    }

    public static void Main()
    {
        Application.Run(new Form1());
    }

}


이 예제에는 다음 사항이 필요합니다.

  • System, System.Drawing 및 System.Windows.Forms 어셈블리에 대한 참조

  • 실행 파일과 동일한 디렉터리에 있는 highPri.bmp, mediumPri.bmplowPri.bmp라는 Bitmap 이미지

Visual Basic 또는 Visual C#의 명령줄에서 이 예제를 빌드하는 방법에 대한 자세한 내용은 명령줄에서 빌드(Visual Basic) 또는 csc.exe를 사용한 명령줄 빌드를 참조하십시오. Visual Studio에서 코드를 새 프로젝트에 붙여넣어 이 예제를 빌드할 수도 있습니다. 방법: Visual Studio를 사용하여 전체 Windows Forms 코드 예제 컴파일 및 실행
방법: Visual Studio를 사용하여 전체 Windows Forms 코드 예제 컴파일 및 실행
방법: Visual Studio를 사용하여 전체 Windows Forms 코드 예제 컴파일 및 실행
방법: Visual Studio를 사용하여 전체 Windows Forms 코드 예제 컴파일 및 실행
방법: Visual Studio를 사용하여 전체 Windows Forms 코드 예제 컴파일 및 실행

커뮤니티 추가 항목

표시:
© 2014 Microsoft