Skip to content

Commit 6437dc1

Browse files
committed
Updated logic of lists from ListBox to DataGridView (Sorting by Header enabled).
1 parent 81dffce commit 6437dc1

File tree

3 files changed

+170
-71
lines changed

3 files changed

+170
-71
lines changed

frmMagicDB.Designer.cs

+94-34
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

frmMagicDB.cs

+67-37
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,8 @@
33
using System.Collections.Generic;
44
using System.ComponentModel;
55
using System.Data;
6-
using System.Drawing;
76
using System.Linq;
8-
using System.Text;
9-
using System.Threading.Tasks;
7+
using System.Reflection;
108
using System.Windows.Forms;
119

1210
namespace KimeraCS
@@ -34,23 +32,39 @@ private void frmMagicDB_Load(object sender, EventArgs e)
3432
if (strMagicLGPPathSrc == "") strMagicLGPPathSrc = strGlobalPath;
3533
txtMagicDataDir.Text = strMagicLGPPathSrc;
3634

37-
lbMagic.Items.Clear();
3835

36+
//Set Double buffering on the Grid using reflection and the bindingflags enum.
37+
typeof(DataGridView).InvokeMember("DoubleBuffered",
38+
BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.SetProperty, null,
39+
dgvMagic, new object[] { true });
40+
41+
// Magic
3942
if (bDBMagicLoaded)
4043
{
44+
dgvMagic.Rows.Clear();
45+
dgvMagic.Refresh();
46+
4147
for (mi = 0; mi < lstMagicLGPRegisters.Count; mi++)
42-
lbMagic.Items.Add(lstMagicLGPRegisters[mi].modelName);
48+
{
49+
dgvMagic.Rows.Insert(mi, mi,
50+
lstMagicLGPRegisters[mi].fileName,
51+
lstMagicLGPRegisters[mi].modelName);
52+
}
4353

4454
if (strLocalMagicModelName == "")
4555
{
46-
lbMagic.SelectedIndex = 0;
56+
dgvMagic.Rows[0].Selected = true;
4757
}
4858
else
4959
{
50-
lbMagic.SelectedIndex = lbMagic.FindStringExact(strLocalMagicModelName);
51-
}
60+
DataGridViewRow dgvRow = dgvMagic.Rows
61+
.Cast<DataGridViewRow>()
62+
.Where(r => r.Cells[1].Value.ToString().Equals(strLocalMagicModelName))
63+
.First();
5264

53-
lbMagic.Select();
65+
dgvMagic.CurrentCell = dgvMagic.Rows[dgvRow.Index].Cells[1];
66+
dgvMagic.Rows[dgvRow.Index].Selected = true;
67+
}
5468
}
5569
}
5670

@@ -95,58 +109,74 @@ private void btnSaveMagicDataDir_Click(object sender, EventArgs e)
95109

96110
private void btnClose_Click(object sender, EventArgs e)
97111
{
98-
strLocalMagicModelName = lbMagic.Text;
112+
strLocalMagicModelName = dgvMagic.Rows[dgvMagic.SelectedRows[0].Index].Cells[1].Value.ToString();
99113

100114
if (!bSelectedMagicFileFromDB)
101115
{
102116
strLocalMagicModelName = "";
103117
}
104118
}
105119

106-
private void lbMagic_DoubleClick(object sender, EventArgs e)
120+
private void dgvMagic_DoubleClick(object sender, EventArgs e)
121+
{
122+
if (dgvMagic.SelectedRows.Count > 0) btnLoadModelAnimation.PerformClick();
123+
}
124+
125+
private void frmMagicDB_FormClosed(object sender, FormClosedEventArgs e)
107126
{
108-
if (lbMagic.SelectedIndex > -1)
127+
strLocalMagicModelName = dgvMagic.Rows[dgvMagic.SelectedRows[0].Index].Cells[1].Value.ToString();
128+
129+
if (!bSelectedMagicFileFromDB)
109130
{
110-
btnLoadModelAnimation.PerformClick();
131+
strLocalMagicModelName = "";
111132
}
112133
}
113134

114135
private void btnLoadModelAnimation_Click(object sender, EventArgs e)
115136
{
137+
string strModelName = "";
116138

117139
bSelectedMagicFileFromDB = false;
118140

119-
if (lbMagic.Text != "")
120-
{
121-
strMagicFile = txtMagicDataDir.Text + "\\" + lstMagicLGPRegisters[lbMagic.SelectedIndex].fileName + ".D";
122-
}
123-
else
141+
if (dgvMagic.SelectedRows.Count > 0)
124142
{
125-
MessageBox.Show("You have not selected any Magic Model.", "Information", MessageBoxButtons.OK);
126-
return;
127-
}
143+
strModelName = dgvMagic.Rows[dgvMagic.SelectedRows[0].Index].Cells[1].Value.ToString();
144+
145+
if (strModelName != "")
146+
{
147+
strMagicFile = txtMagicDataDir.Text + "\\" + strModelName + ".D";
148+
}
149+
else
150+
{
151+
MessageBox.Show("You have not selected any Magic Model.", "Information", MessageBoxButtons.OK);
152+
return;
153+
}
128154

129-
strMagicAnimFile = txtMagicDataDir.Text + "\\" + lstMagicLGPRegisters[lbMagic.SelectedIndex].fileName + ".A00";
155+
strMagicAnimFile = txtMagicDataDir.Text + "\\" + strModelName + ".A00";
130156

131-
// Check existance of the files.
132-
if (!File.Exists(strMagicFile))
133-
{
134-
MessageBox.Show("The file selected as Magic Model " + lstMagicLGPRegisters[lbMagic.SelectedIndex].fileName + " does not exists.",
135-
"Error");
136-
return;
137-
}
138157

139-
if (!File.Exists(strMagicAnimFile))
140-
{
141-
MessageBox.Show("The file selected as Field Animation " + lstMagicLGPRegisters[lbMagic.SelectedIndex].fileName + ".A00" + " does not exists.",
142-
"Error");
143-
return;
144-
}
158+
// Check existance of the files.
159+
if (!File.Exists(strMagicFile))
160+
{
161+
MessageBox.Show("The file selected as Magic Model " + strModelName + ".D does not exists.",
162+
"Error");
163+
return;
164+
}
165+
166+
if (!File.Exists(strMagicAnimFile))
167+
{
168+
MessageBox.Show("The file selected as Magic Model Animation " + strModelName + ".A00 does not exists.",
169+
"Error");
170+
return;
171+
}
145172

146-
bSelectedMagicFileFromDB = true;
173+
bSelectedMagicFileFromDB = true;
147174

148-
Close();
175+
Close();
176+
}
149177
}
150178

179+
180+
151181
}
152182
}

frmMagicDB.resx

+9
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,15 @@
117117
<resheader name="writer">
118118
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119119
</resheader>
120+
<metadata name="colNumber.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
121+
<value>True</value>
122+
</metadata>
123+
<metadata name="colFileName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
124+
<value>True</value>
125+
</metadata>
126+
<metadata name="colName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
127+
<value>True</value>
128+
</metadata>
120129
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
121130
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
122131
<value>

0 commit comments

Comments
 (0)