更新日:2011-07-07
- 操作マニュアルUP!!(途中)
ここでは、アプリ開発で作成してきた次のようなテーマのアプリを総合的
に管理するをテーマにアプリを開発する。
に管理するをテーマにアプリを開発する。
- 食をテーマにおすすめのお店を管理するアプリ(食べラク)
- 音楽をテーマにおすすめの曲を管理するアプリ(聞くラク)
- 図書をテーマにおすすめの本を管理するアプリ(読むラク)
- mixiをテーマにマイミクを管理するアプリ(ミクラク)
- メイン画面
- プロジェクト
大きくプロジェクトは[5構成]で行う。
- MainApp メインアプリ
※メインのアプリケーションを管理する。ツールアプリでフォームとユーザコントロール
を設定することで、メイン画面ではその組み合わせの画面を呼び出す。
を設定することで、メイン画面ではその組み合わせの画面を呼び出す。
- ToolApp ツールアプリ
※各フォームとユーザコントロールのレイアウトを変更できるツールアプリを管理する。
各フォームとユーザコントロールを組み合わせ情報を保存したりもこの画面で行うことが
できる。
各フォームとユーザコントロールを組み合わせ情報を保存したりもこの画面で行うことが
できる。
- CstmControls 派生コントロールクラスの集合
※ツールでコントロールのプロパティを
- FormControls フォームコントロールの集合
※ベースとなるFMBaseクラスを作成し、自由なレイアウトのフォームクラスを管理する。
- UserControls ユーザコントロールの集合
※ベースとなるUCBaseクラスを作成し、自由なレイアウトのユーザコントロールクラスを管理する。
[ クラス構成 ]
FormControls
|- FMBase |- FM01* ※FMBaseの拡張クラス |- …
UserControls
|- UCBase |- UC01* ※UCBaseの拡張クラス |- …
CstmControls
|- CstmButton* ※Buttonの拡張クラス |- CstmCheckBox* ※CheckBoxの拡張クラス |- …
ToolApp
|- FrmUserControls* ※CstmFormの拡張クラス |- FrmMain* ※CstmFormの拡張クラス
MainApp
|- FrmMenuCstm* ※CstmFormの拡張クラス |- FrmMenu |- FrmMain |- FrmVersion |- FrmMenuCstmEdt |- MagicLibrary.dll
[ 技術情報 ]
[1].NETでDocking Windowを使う。
VisualStudioのようにドラッグしてウィンドウを分離したり、
ドッキングさせたりできるようにするライブラリを組み込む。
ドッキングさせたりできるようにするライブラリを組み込む。
Magic Docking
以下のサイトで「Magic Docking」のライブラリを取得できる。
http://www.codeproject.com/KB/miscctrl/magicdocking.aspx
ダウンロードしたDLLを参照設定して、利用することができる。
http://www.codeproject.com/KB/miscctrl/magicdocking.aspx
ダウンロードしたDLLを参照設定して、利用することができる。
実装方法
using Crownwood.Magic.Common;
using Crownwood.Magic.Controls;
using Crownwood.Magic.Docking;
using Crownwood.Magic.Menus;
using Crownwood.Magic.Controls;
using Crownwood.Magic.Docking;
using Crownwood.Magic.Menus;
DockingManager _dockingManager = new DockingManager(this, VisualStyle.IDE);
Content content = new Content(_dockingManager);
content = _dockingManager.Contents.Add(new FrmMenu(), "管理メニュー");
content.AutoHideSize = new Size(200, 200);
content.DisplaySize = new Size(200, 200);
content.FloatingSize = new Size(210,550);
_dockingManager.ShowContent(content);
content = _dockingManager.Contents.Add(new FrmMenu(), "管理メニュー");
content.AutoHideSize = new Size(200, 200);
content.DisplaySize = new Size(200, 200);
content.FloatingSize = new Size(210,550);
_dockingManager.ShowContent(content);
[2] アプリケーション情報取得
Application.ProductVersion
[3] アプリケーション起動パス
Application.StartPath
[4] MDIの子フォームに割当
FrmTest frm = new FrmTest();
frm.MdiParent = this.ParentForm;
frm.Show();
FrmTest frm = new FrmTest();
frm.MdiParent = this.ParentForm;
frm.Show();
[5] コントロール検索
foreach(Control ccontrol in hParent.Controls)
{
{
if(cControl.Name.Equals(sName))
{
return cControl;
}
}
{
return cControl;
}
}
[6] コントロールの派生クラスを作成する。
各コントロールの派生クラスを作成し、右クリック機能を実装する。
Public class CstmCheckbox : CheckBox
public class CstmCombobox : ComboBox
public class CstmRadioButon : RadioButton
public class CstmTextBox : TextBox
public class CstmLabel : Label
public class CstmButton : Button
public class Cstmform : Form
※フォームもカスタマイズする。
※フォームもカスタマイズする。
[7] XMLデータを抽出する。
XmlDocument document = new XmlDocument();
XmlDocument document = new XmlDocument();
document.Load("test.xml");
XmlNode node = document.SelectSingleNode("Members/Member");
XmlNode node = document.SelectSingleNode("Members/Member");
string sText = node.InnerText;
XmlnodeList list = document.SelectNodes("Members/Member");
XmlnodeList list = document.SelectNodes("Members/Member");
string sText = list.item(index).InnerText;
~ test.xml(XMLデータ) ~
<Members>
<Member>
<Row1>山田花子</Row1>
<Row2>hanako</Row2>
<Row3>yamada</Row3>
</Member>
<Member>
<Row1>佐藤一郎</Row1>
<Row2>ichiro</Row2>
<Row3>sato</Row3>
</Member>
</Members>
<Members>
<Member>
<Row1>山田花子</Row1>
<Row2>hanako</Row2>
<Row3>yamada</Row3>
</Member>
<Member>
<Row1>佐藤一郎</Row1>
<Row2>ichiro</Row2>
<Row3>sato</Row3>
</Member>
</Members>
[8] XMLデータを追加する。
XmlDocument document = new XmlDocument();
document.Load("test.xml");
XmlNode node = document.CreateElement("test");
node.InnerText = "test";
node.InnerText = "test";
document.Save("test.xml");
[9] XMLデータを削除する。
XmlDocument document = new XmlDocument();
document.Load("test.xml");
XmlNode node = document.SelectSingleNode("Members/Member[@id='1']");
document.SelectSingleNode("Members").RemoveChild(node);
document.SelectSingleNode("Members").RemoveChild(node);
document.Save("test.xml");
[10] XMLデータを更新する。
XmlDocument document = new XmlDocument();
document.Load("test.xml");
XmlNode node = document.SelectSingleNode("Members/Member[@id='1']");
node.SelectSingleNode("Row1").InnerText = "test";
node.SelectSingleNode("Row1").InnerText = "test";
document.Save("test.xml");
このwikiの更新情報RSS
WindowsApplication1.zip