MSFlexGrid 實現不連續選擇單元格和實現保存MSFlexGrid數據到.DAT文件,並能從.DAT讀出

MSFlexGrid 實現不連續選擇單元格和實現保存MSFlexGrid數據到.DAT文件,並能從.DAT讀出

找個好久,發現MSFlexGrid不能實現這個功能,只好自己寫代碼來實現,如果您有更好的方法請與我聯繫。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace BitmapRegion
{
    
public partial class Form2 : Form
    
{
        
private bool[,] cellselected = new bool[316];
        
public Form2()
        
{
            InitializeComponent();
        }
 
        
        
private void Form2_Load(object sender, EventArgs e)
        
{
            
this.axMSFlexGrid1.ClickEvent += new EventHandler(axMSFlexGrid1_ClickEvent);
            axMSFlexGrid1.Rows 
= 3;
            readtodat(axMSFlexGrid1);
            
        }

        
/// <summary>
        
/// 獲得選中單元格
        
/// </summary>
        
/// <param name="sender"></param>
        
/// <param name="e"></param>

        private void button1_Click(object sender, EventArgs e)
        
{
            
this.Text = "";
            
for (int i = 0; i < 3; i++)
                
for (int j = 0; j < 16; j++)
                
{
                    
if (cellselected[i, j] == true)
                        
this.Text += i.ToString() + j.ToString() + " ";
                }

        }

        
/// <summary>
        
/// 取消單元格的選中狀態
        
/// </summary>
        
/// <param name="sender"></param>
        
/// <param name="e"></param>

        private void button2_Click(object sender, EventArgs e)
        
{
            
for (int i = 1; i < 3; i++)
                
for (int j = 1; j < 16; j++)
                
{
                    cellselected[i, j] 
= false;
                    axMSFlexGrid1.Row 
= i;
                    axMSFlexGrid1.Col 
= j;
                    axMSFlexGrid1.CellBackColor 
= Color.White;
                    axMSFlexGrid1.CellForeColor 
= Color.Black;
                }

            
this.Text = "";
        }
              
        
/// <summary>
        
/// 從文本中將數據讀出到msflexgrid
        
/// </summary>
        
/// <param name="flex"></param>

        void readtodat(AxMSFlexGridLib.AxMSFlexGrid flex)
        
{
            FileStream mystream 
= new FileStream("C:/設備配置/a.dat", FileMode.Open);
            StreamReader Mywriter 
= new StreamReader(mystream, Encoding.Default);
            
string text = Mywriter.ReadToEnd();
            
string[] text1 = text.Split(' ');
            
for (int i = 0; i < axMSFlexGrid1.Rows * axMSFlexGrid1.Cols; i++)
                axMSFlexGrid1.set_TextArray(i, text1[i]);
            
this.Text = axMSFlexGrid1.Text;
            Mywriter.Close();
            mystream.Close();
        }

        
/// <summary>
        
/// 將msflexgrid的數據讀出到.dat文本
        
/// </summary>
        
/// <param name="flex"></param>

        void outtodat(AxMSFlexGridLib.AxMSFlexGrid flex)
        
{
            FileStream mystream 
= new FileStream("C:/設備配置/a.dat", FileMode.OpenOrCreate);
            StreamWriter Mywriter 
= new StreamWriter(mystream, Encoding.Default);
            
string text = "";
            
for (int i = 0; i < axMSFlexGrid1.Rows; i++)
                
for (int j = 0; j < axMSFlexGrid1.Cols; j++)
                    text 
+= flex.get_TextMatrix(i, j) + " ";
            Mywriter.Write(text);
            Mywriter.Close();
            mystream.Close();

        }

        
/// <summary>
        
/// 實現msflexgrid 的不連續選擇單元格
        
/// </summary>
        
/// <param name="sender"></param>
        
/// <param name="e"></param>

        private void axMSFlexGrid1_ClickEvent(object sender, EventArgs e)
        
{
            
if (axMSFlexGrid1.MouseCol != 0 && axMSFlexGrid1.MouseRow != 0 && axMSFlexGrid1.get_TextMatrix(axMSFlexGrid1.Row, axMSFlexGrid1.Col) != "")
            
{
                
if (axMSFlexGrid1.CellBackColor == Color.Blue)
                
{
                    axMSFlexGrid1.RowSel 
= axMSFlexGrid1.Row;
                    axMSFlexGrid1.ColSel 
= axMSFlexGrid1.Col;
                    axMSFlexGrid1.CellBackColor 
= Color.White;
                    axMSFlexGrid1.CellForeColor 
= Color.Black;
                    cellselected[axMSFlexGrid1.Row, axMSFlexGrid1.Col] 
= false;
                }

                
else
                
{
                    axMSFlexGrid1.RowSel 
= axMSFlexGrid1.Row;
                    axMSFlexGrid1.ColSel 
= axMSFlexGrid1.Col;
                    axMSFlexGrid1.CellBackColor 
= Color.Blue;
                    axMSFlexGrid1.CellForeColor 
= Color.White;
                    cellselected[axMSFlexGrid1.Row, axMSFlexGrid1.Col] 
= true;
                }

            }

        }

    }

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章