.Net開発
DataGridViewにDataTableをバインドし、ユーザがリセットボタンを押したタイミングで、初期値に戻すための方法です。 DataGridView のメンバでそれらしいを探してみたんですが、見当たりません。 仕方なく下記のような方法をとることとしました。(C#) DataTa…
.Net のコントロールエクスプローラからのファイルのドラッグアンドドロップを受け入れ、ファイルのパスを取得するための方法です。 MS:Visual C# アプリケーションにファイルのドラッグ アンド ドロップ機能を提供する方法に書いてる内容そのままですが、参…
.Net アプリで DirectoryEntry と SearchResultCollection を使ってActiveDirectory上のユーザを取得してるんですが、1000件を超えたアカウント情報が取得できません。 で、調べるとADSIの仕様のようですね。 解決策としては、DirectorySearcher.PageSize を…
DataTableのデータをグループ化したかったんですが、ワンタッチでできる方法はないようです。 で、探してると、yan note: .NET DataTableをグループ化し集計するにはにどんぴしゃな方法が載ってました。 一旦 DataTable を DataView に変換して、DataView.To…
特定のプロセスを終了する方法ですが、ユーザ関係なしに終了するなら、ここにある方法で簡単に行えます。 厄介なのは、これに「特定のユーザー」という条件がついたときです。 (ターミナルサーバで動かす予定なので、ユーザの指定ができないと、ログインしてる…
メッセージボックスを表示するときに動的な値を入れたい時があります。 今まであんまり使ったことないんですが、文字列への動的な値の埋め込みは、String.Format メソッド を使えば簡単にできるようです。(わざわざ文字列連結を使う必要が無いということです…
(.NetからOpenOfficeを操作する方法はを参照。OpenOfficeは3.2です。) .NetからCalcファイルを作成し、データを吐きたいんですが枠線を入れる方法がわかりませんでした。 最初、こちらを参考にしてディスパッチを使った方法を検討していました。 Calc で枠線…
.NetからOpenOfficeのドキュメントを操作するための方法です。 OpenOfficeには UNO(Universal Network Objects) というAPIが用意されてるのでそれを使って操作できるようです。 (OpenOffice内のマクロも UNO 経由で動いてるっぽいです) UNO を .Net Framewor…
今まで小規模なスタンドアロンアプリケーション作ってた時は、データベースとして MDB を使ってきたんですが、簡単なマスタ程度の情報であればわざわざMDB使わなくても、XMLでできるんじゃないかと思ってやってみました。 まず、XMLの情報を DataTable とし…
(.Net)DataTable のリレーションPart1(デザイナを使った方法)の続きです。 コードだけでする方法 デザイナを使わずにリレーションを張るには、DataSet.Relations コレクションに、DataRelation インスタンスを追加すればいいようです。 こんな感じです。 テ…
今まで使ったことないのですが、DataTableにはリレーショナルデータベースのように、リレーションが張れるようです。 ということで、ちょっと使ってみました。 デザイナを使った方法 下記のような構成テーブルのデータベース(今回はmdb)を用意し、VisualStud…
DataGridvView で、DataGridViewCheckBoxColumn を使ってるんですが、チェックボックスが表示されません。 おかしいなぁと思い、いろいろ試してると高さ(RowTemplate.Height)が 17 以下だと見えなくなるようです。 フォントのサイズに左右されるのかもしれま…
最初 DataGridView でセルの値によって背景変更する処理をしていました。 例えばTrueなら背景色を付け、Falseならスタイルを無しする下記のような感じです。(C#) //row は DataGridViewRow オブジェクト if ((bool)row.Cells["Column1"].Value == true){ row…
カスタムクラスの List をバインドした DataGridView があります。 セル値を変更してまだDBに保存する前の状態の場合にセルの背景色を変え、保存したら元の背景色に戻すという動作を実現したいと考えてます。 CellValidated イベントや CellValueChanged イ…
iTextSharpというライブラリを使うと簡単にできるようです。 ダウンロードはhttp://sourceforge.net/projects/itextsharp/files/itextsharp/からできます。 なかなかクラスライブラリの詳しい説明をしてくれているサイトがないんですが、Vector:iTextSharp …
ADSIを使って、.Net からActiveDirectoryのユーザアカウントをグループに所属させる方法です。 下記のコードでできます。(C#) /// /// グループにユーザを追加 /// /// グループのパス(LDAP://ドメインコントローラ名/CN=グループ名,CN=Users,DC=domainname,…
最近、DataGridViewRow.CreateCells()というメソッドを知りました。 これは既存の DataGridView の列定義に基づいてセル(正確にはセルテンプレート)を作成してくれるもので、新規DataGridViewの行を作るときに便利そうです。 それで、下記のようなコードを書…
ActiveDirectoryの情報を参考にする方法については、(.Net,ADSI)Active Directroyの情報を参照。を参考にしてください。 OUの一覧を取得するLDAP条件は下記でできるようです。(C#) // LDAP検索オブジェクトを作成 DirectorySearcher drSearch = new Director…
Listを DataGridView にバインドしてるんですが、ユーザーが行を選択した時に選択された行に対応するオブジェクト取得する方法です。 .Net にはそのためのプロパティが用意されていました。 それは、DataGridViewRow.DataBoundItemプロパティです。 詳しくは…
マルチスレッドのプログラムで、重たい処理を行うサブスレッドから、フォームを操作する方法です。 調査するとフォームのコントロールはメインスレッドで動くようです。 なので、サブスレッドからそのままフォーム上のコントロールを触ると、例外が発生しま…
タスクトレイに常駐するアプリケーションを作ってます。指定された時間おきにWEBコンテンツの更新を確認するツールなんですが、マルチスレッド構成とし、コンテンツの更新確認は別スレッドで行っています。 で、フォームを非表示にして起動する方法ですが、…
.Net から ActiveDirectory の新規ユーザ作成すると、デフォルトでアカウントが無効となっています。 でも、userAccountControl フラグを設定して Commit すると有効になるようです。(もしくは、先にコミットしてから userAccountControl フラグ編集し、再度…
MSDN:UserAccountControl フラグを使用してユーザー アカウント プロパティを操作する方法にある UserAccountControl フラグで、PASSWD_CANT_CHANGE フラグ(0x0040) を使って仕様と思ったが、これは使えませんでした。 上記MSのページにも注意事項として「注 …
(.Net)DataGridViewでバインドしたデータソースを変更してもグリッドには反映されない?でカスタムクラスのバインドについて書きました。 あの方法でバインドした DataGridView を下記のようにプログラム側から1行削除しようとしました。 public partial clas…
DataGridViewにカスタムクラスのListをバインドします。 そのカスタムクラスListにデータを追加したんですが、DataGridView に表示されません。 ちょうどソースとしてはこんな感じです。 public partial class Form1 : Form { //カスタムクラスのList。バイ…
(.Net)バインドされたDataGridViewでソートするとセルの色が元に戻るで、セルの値に基づいてDataGridViewのスタイルを変更するにはCellFormattingを使うべきだ と書きました。 ところが、CellFormattingイベントでは対応できない場面が出てきました。 問題と…
(.Net)DataGridViewでカスタムクラスをバインドした状態でソートを行う。 DataGridViewで、カスタムクラス(独自クラス)のリストをバインドすると、ソートができません。 ソートグリフ(列ヘッダに表示される▽△マーク)も表示されません。 例えば下記のようにな…
Listに Sort という便利そうなメソッドがあります。 で、例えば User クラスというオリジナルクラスの List を、Userクラス内のプロパティ値に基づいてソートしたいって時もあります。 これは、List.Sort メソッドでデリゲートを作成してやればいいようです…
.NetからADSIを用いてActiveDirectoryのユーザ情報を取ってきてるんですが、ユーザの所属するグループの値が入っている MemberOf 属性に Domain Users がいません。 逆に、Domain Users の member にはデフォルトは全ユーザがいないといけないのに、Not Set …
ユーザのアカウント有効無効かを調べたいときは、Userオブジェクトの UserAccountControlフラグを見ればいいようです。 このフラグはビットフラグとなっており、「Active Directory ユーザーとコンピュータ」の「アカウントオプション」の各項目の値を保持してる…