かんじのC#めも@Wiki
http://w.atwiki.jp/canjymax/
かんじのC#めも@Wiki
ja
2006-04-11T09:42:59+09:00
1144716179
-
ロックで同時アクセス回避
https://w.atwiki.jp/canjymax/pages/24.html
複数スレッドで、変数等に同時アクセスすると困る場合、
ロックオブジェクトを生成して、回避する方法がある。
まず、ロック用のオブジェクトを生成
private Object LockObj = new Object();
同時アクセスを回避したいところで、
private void Hogehoge()
{
Lock(LockObj)
{
// 同時アクセスしたくない処理
}
}
Lockのカッコ内は1つのスレッドしか入って来れず、
同時にアクセスしたとしても、先着順で待たされる。
先に入ったスレッドが、カッコから抜けたら、
次のスレッドが処理を行う。
ちなみにこの方法は結構重いので、使いどころはよく考慮する。
2006-04-11T09:42:59+09:00
1144716179
-
dataGridViewにxmlの内容を表示
https://w.atwiki.jp/canjymax/pages/23.html
[[dataGridViewの内容をxmlに保存]]で保存したxmlファイルの内容をdataGridViewに表示します。
下準備として、フォーム上にdataGridView1とdataSet1とbutton1を貼り付けます。
dataSet1とdataGridView1のプロパティは
-[[dataGridViewの内容をxmlに保存]]
で設定した内容と同じにします。
button1のクリックイベントを
private void button1_Click(object sender, EventArgs e)
{
dataSet1.ReadXml("test.xml");
}
とすれば、ボタンクリックでXMLの内容がdataGridViewに反映されます。
また、列情報もXMLに保存されている場合、
private void button1_Click(object sender, EventArgs e)
{
dataSet1.Clear();
dataSet1.ReadXml("test.xml");
dataGridView1.DataSource = dataSet1;
dataGridView1.DataMember = dataSet1.Tables[0].TableName;
}
とすれば、dataSetとdataGridViewのプロパティを変更しなくても、デザイナーに貼り付けるだけでOK!
2006-04-07T10:08:02+09:00
1144372082
-
dataGridViewの内容をxmlに保存
https://w.atwiki.jp/canjymax/pages/22.html
dataGridViewで編集した内容をxmlに保存するには、
dataSetのWriteXmlメソッドを使います。
まず下準備として、dataGridViewとdataSetの関連付けをします。
フォーム上にdataGridView1とdataSet1とbutton1を貼り付けて
dataSet1のTablesに、適当な名前のテーブルを追加し、
Culumnsに列コレクションを作成します。
dataGridView1のプロパティを
DataSource dataset1
DataMember Table1 ←上で追加したテーブル名
button1のクリックイベントに
private void button1_Click(object sender, EventArgs e)
{
dataSet1.WriteXml("test.xml");
}
と記述すれば、dataGridViewで編集した内容がXMLファイルに保存されます。
dataSetの列情報なども一緒に保存する場合は
private void button1_Click(object sender, EventArgs e)
{
dataSet1.WriteXml("test.xml", XmlWriteMode.WriteSchema);
}
とすれば、保存されます。
2006-04-07T09:53:26+09:00
1144371206
-
blog的なもの/2006年04月06日
https://w.atwiki.jp/canjymax/pages/21.html
-[[blog的なもの/2006年04月06日/テスト日記]]
#blognavi
2006-04-06T15:54:10+09:00
1144306450
-
blog的なもの/カテゴリ/その他
https://w.atwiki.jp/canjymax/pages/20.html
-(2006年04月06日) [[テスト日記>blog的なもの/2006年04月06日/テスト日記]]
2006-04-06T15:54:10+09:00
1144306450
-
blog的なもの/2006年04月06日/テスト日記
https://w.atwiki.jp/canjymax/pages/19.html
#blognavi
blog機能のテスト
#right{
カテゴリ: [[[その他>blog的なもの/カテゴリ/その他]]] - &trackback() - 2006年04月06日 15:42:41
}
#comment(nostyle,nsize8,size30)
#blognavi
2006-04-06T15:54:10+09:00
1144306450
-
blog的なもの
https://w.atwiki.jp/canjymax/pages/18.html
#weblog()
2006-04-06T15:42:23+09:00
1144305743
-
スレッドの生成
https://w.atwiki.jp/canjymax/pages/17.html
とりあえずおまじないをして
using System.Threading
スレッドとして実行したいメソッドを書く。
public void TestThread()
{
// なにかの処理
}
スレッドの実行を開始したいところで、
Thread th = new Thread(TestThread);
th.Start();
でOK。
停止は
th.Abort();
2006-04-06T15:38:35+09:00
1144305515
-
別フォームの操作
https://w.atwiki.jp/canjymax/pages/16.html
別のフォームを表示するには、フォームクラスを生成して、showメソッドを呼ぶ。
Form2 fm = new Form2();
fm.Show();
生成だけして表示してないフォームのコントロールを操作する場合、ちょっとしたコツが必要。
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
CreateGraphics();
}
と、表示したいフォームのコンストラクタに
CreateGraphics();
を追加すると、Show()メソッドが呼ばれる前にフォーム上のコントロールをすべて生成してくれるので、別フォームから操作したい場合も変な例外が発生しない。。。。かも!(自信ない)
2006-04-06T15:02:02+09:00
1144303322
-
フォームコントロール関連
https://w.atwiki.jp/canjymax/pages/15.html
-[[別フォームの操作]]
-[[dataGridViewの内容をxmlに保存]]
-[[dataGridViewにxmlの内容を表示]]
----
2006-04-07T09:55:08+09:00
1144371308