-------------------------------------------------------------------------------------------
datagridview自設儲存格顏色:
下圖為範例執行結果:(外牆是淺綠色,迷宮中可走的路是白色,不可走的路是海軍藍)
dataGridView2->ColumnCount = m;
dataGridView2->RowCount = p;
for (i=0; i<m; i++)
{ for (j=0; j<p; j++)
{
if (maze[i + 1][j + 1] == 1)
dataGridView1->Rows[i + 1]->Cells[j + 1]->Style->BackColor = Color::Navy;// 海軍藍
}
}
for (i=0; i<m+2; i++)
{ maze[i][0] = 1;
dataGridView1->Rows[i]->Cells[0]->Style->BackColor = Color::Honeydew;// 淺綠
maze[i][p+1] = 1;
dataGridView1->Rows[i]->Cells[p+1]->Style->BackColor = Color::Honeydew;
}
for (j=1; j<p+1; j++)
{ maze[0][j] = 1;
dataGridView1->Rows[0]->Cells[j]->Style->BackColor = Color::Honeydew;
maze[m+1][j] = 1;
dataGridView1->Rows[m+1]->Cells[j]->Style->BackColor = Color::Honeydew;
}
顏色表:http://msdn.microsoft.com/en-us/library/bb980062(VS.95).aspx
Named Color: http://cloford.com/resources/colours/namedcol.htm
-------------------------------------------------------------------------------------------
調整datagridview中row與column的size:
手動:
在物件屬性視窗把dataGridView的AutoSizeColumnsMode調整為Fill
在物件屬性視窗把dataGridView的AutoSizeRowsMode調整為AllCells
在物件屬性視窗把dataGridView的Dock調整為Fill
從程式碼設定:
dataGridView->AutoSizeColumnsMode = DataGridViewAutoSizeMode::Fill;
dataGridView->AutoSizeRowsMode = DataGridViewAutoSizeMode::AllCells;
dataGridView->Dock = DockStyle::Fill;
//Nov. 19, 2013
# include <stdio.h>
namespace Mousesinamaze {
...
using namespace System::Runtime::InteropServices;
// 呼叫 Marshal::StringToHGlobalAnsi 轉換 String ^ to char * 時用!
}
private: System::Void button3_Click(System::Object^ sender, System::EventArgs^ e)
{ String ^ a;
int m, p, i, j;
char * fname;
if (openFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK) // 順利開啟檔案才繼續往下做
{ a = openFileDialog1->FileName;
char * str2 = (char*) (void*) Marshal::StringToHGlobalAnsi(a);
FILE *fp = fopen(str2,"r"); // 讀檔, 注意第二參數為 "r" (read)
// fopen 需要檔名以 char * 型態為參數
if (fp)
{ fscanf(fp, "%d %d", &m, &p);
listBox1->Items->Add("m="+m+" p="+p);
listBox1->Items->Add("input file :"+a);
dataGridView2->RowCount = m+2;
dataGridView2->ColumnCount = p+2;
for (i=1; i<=m; i++)
{ for (j=1; j<=p; j++)
{ fscanf(fp, "%d", &maze[i][j]);
}
}
fclose(fp); // 讀完檔後請關檔
for (i=0; i<m+2; i++)
{ maze[i][0] = 2;
maze[i][p+1] = 2;
}
for (j=1; j<p+1; j++)
{ maze[0][j] = 2;
maze[m+1][j] = 2;
}
for (i=0; i<m+2; i++)
{ for (j=0; j<p+2; j++)
{ if (maze[i][j] == 2)
//dataGridView2->Rows[i]->Cells[j]->Value = "●";
dataGridView2->Rows[i]->Cells[j]->Style->BackColor = Color::Brown;// 棕色;
else
//dataGridView2->Rows[i]->Cells[j]->Value= maze[i][j];
if (maze[i][j] == 1) dataGridView2->Rows[i]->Cells[j]->Style->BackColor = Color::Navy;// 海軍藍;
else dataGridView2->Rows[i]->Cells[j]->Style->BackColor = Color::Honeydew;// 淺綠;
}
}
}
}
}