DataGridView单元格代码控制

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

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

        
public Form1()
        {
            InitializeComponent();

            
// 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 == nullreturn;

                
// 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;
                }
            }

        }
    }
}
posted on 2008-06-19 09:28  迷你软件  阅读(1144)  评论(0编辑  收藏  举报

本网站绝大部分资源来源于Internet,本站所有作品版权归原创作者所有!!如有以下内容:章节错误、非法内容、作者署名出错、版权疑问、作品内容有违相关法律等请及时与我联系. 我将在第一时间做出响应!本站所有文章观点不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。