なお、本稿で作成しているサンプル・アプリケーションのVisual Studio 2008用プロジェクトは以下のリンクよりダウンロードできる。 サンプル・アプリケーションのC#プロジェクト(GetYomiCs.zip) サンプル・アプリケーションのVBプロジェクト(GetYomiVb.zip) 以降では、上記プロジェクトに含まれるソース・ファイルより主要な部分を抜き出して解説する。 Win32 APIの準備 まずは、IME関係のWin32 APIをC#/VBから呼び出せるよう準備しておく。 private const int WM_CHAR = 0x102; private const int WM_IME_COMPOSITION = 0x10F; private const int GCS_RESULTREADSTR = 0x0200; // コンテキスト・ハンドルの取得 [DllImpo
System.Text.RegularExpressions.Regex クラスの使い方 メタ文字正規表現の基本: .NET Tips: C#, VB.NET 文字クラス . (改行は含まない-Singlelineオプションで任意の文字にマッチ)\s (ECMAScriptオプション指定時は [ \f\n\r\t\v])\S\d\D\w (アンダースコアやひらがな、カタカナ、漢字などなどが含まれるので注意-ECMAScriptオプションで [a-zA-Z_0-9])\W\r\n`\t\u0000\x00\b\*+{n,m} {n} {n,}^ $\A\Z\z(?:) (?=) (?!) (?<=) (?<!) (?#)\number $number $&(一致した部分全部)(?<name>) \k<name> ${name} 注意:見ればわかるように <~> も場合によりエスケープが必要文
アプリケーションの実行パスを取得する方法について調べると実にさまざまな方法が見つかります。どの方法でも実行ファイルのパスを取得できるようなのですが、では実際にどの方法を使えばいいのか。一番良い方法はどれなのかを検討してみました。 まずは、Googleの検索結果を見て行きます。 @IT 実行ファイルのパスを取得するには? http://www.atmarkit.co.jp/fdotnet/dotnettips/016exepath/exepath.html Assembly myAssembly = Assembly.GetEntryAssembly(); string path = myAssembly.Location; string path = Application.ExecutablePath; @IT ClickOnceアプリのディレクトリ・パスを取得するには?[2.0のみ、C
C#とVB.NETというプログラミング言語があります。これらは.NET環境でのプロジェクトでよく見かける言語です。 よく二つの言語を比べたりする記事がありますが、当記事では最近の日本のプロジェクト情報をベースに、携われるプロジェクトの種類や単価感、取り巻く勉強環境の違いをお伝えできればと思います。 どちらを使うかは好みの問題ですが、最新の各々の勉強環境から、プロジェクト状況までを3000社以上のIT企業との繋がりがある筆者がご紹介させて頂きたいと思います。 両言語とも実務経験があれば案件はすぐ見つかるほど人気な言語です。この記事が少しでもスキルプランの選択に役に立てれば幸いです。 なお、本記事はフリーランスのエンジニアに案件を紹介するサービス「ポテパンフリーランス」がお届けしています。 いますぐにC#、VB.NET案件を探したい!今後、C#、VB.NET案件に参画することを考えている!とい
恥ずかしながら最近知ったのは、*.DLL.Config が自動で読み込まれないこと。 そりゃそうだ、読むタイミングがないから。 今回のプロジェクトは、ライブラリの提供まででアプリケーションは顧客が作る製品。 WCF のクライアントがDLLになっていて構成ファイルをApp.config に書いて ユーザーが作るアプリケーションのApp.config はフリーにしてあげようというもくろみだった。 が、あえなく失敗。 WCF サービス側はもろApplyConfiguration メソッドで構成ファイル全体が読めるが クライアントはChannel など要素ごとのようだ。 ファイル名を意識したりとかもあってちょっとやっかい。
webHttpBindingの基本についてのメモ。 CodeProjectにWCF RESTサービスについての素晴らしい記事があったので それを参考にしたメモです。 Windows Communication Foundation and RESTful Web Services Primer http://www.codeproject.com/KB/WCF/REST_Primer.aspx WCFの参考リソース (CodeProject, REST, webHttpBinding, behaviorExtensions, リンク) http://d.hatena.ne.jp/gsf_zero1/20111101/p1 WCFでは、.NET Framework 3.5よりRESTサービスを作成する機能が追加されました。 RESTサービスを追加する際に利用するバインディングは以下のものです
WCF(Windows Communication Foundation)について学習していきます。WCFはMicroSoftの分散オブジェクト技術の実装のひとつですが、ひらたく言うとクライアントとサーバの間でオブジェクトをやり取りするためのフレームワークです。サーバで作成したクラスのインスタンスを劣化なしにクライアントに渡すことができます。シリアライズ(永続化)について理解があるなら、シリアライズ(永続化)されたオブジェクトを受け渡しするための仕組み。と捕らえると分かりやすいかもしれません。 (シリアライズ(永続化)はオブジェクトを保存する技術です。オブジェクトをデータ形式(ファイル、DB、ネットワークストリーム)などに変換、逆変換できます。オブジェクトをデータに変換してサーバからクライアントに転送する。と考えてください。) 過去にも分散オブジェクト技術の実装は多くありました、CORBA
VS2008、C# WCF、WPF初心者です。 WCFを使ったDLLを作成し、クライアントアプリ(WPF)から参照設定を行いサービスにアクセスしたいのですが、 DLL側でWCFのABCの設定をapp.configで行っているのですが、クライアントアプリ(WPF)側でも同じ構成 定義を持たないと実行に以下のエラーが出ます。 System.InvalidOperationException 『ServiceModel クライアント構成セクションで、コントラクト 'LgXXX.ILgXXX' を参照する既定のエンドポイント要素が見つかりませんでした。 この原因としては、ご使用のアプリケーションの構成ファイルが見つからなかったこと、 またはこのコントラクトに合致するエンドポイント要素がクライアント要素内で見つからなかった ことが考えられます。』 クライアントアプリ(WPF)はWCFの構成を意識しな
対象 以下の条件下できっと問題になるはず。 .Net Framework 2.0以降 アプリケーションのexeとライブラリdllがある環境 DLLでSettings.settingsを利用している場合 このとき、問題になるのが以下のような点だろう。 DLL側のアプリケーションの設定を変更する手立てがない アプリケーションは*.exe.configに記載されているので、その部分を変更すれば、反映することが出来る 対策方法 DLL側のapp.configとアプリケーション側のapp.configをマージする。 たったこれだけですべて解決する。 解析 プロジェクト構成 dlltests (ソリューション) dlltests (アプリケーション) ClassDao (クラスライブラリ) ClassDao(クラスライブラリ) のapp.config <?xml version="1.0" encod
フォームにメインメニューを付ける多くのWindowsアプリケーションには、タイトルバーの下にメニュー(メニューバー)が付いています。このようにフォームにメインメニューを付けるには、MenuStripコントロールを使用します。ここでは、MenuStripコントロールを使ってメインメニューを作成する方法の基本的な事柄を説明します。 なおMenuStripコントロールは、.NET Framework 2.0以降でのみ使用できます。.NET Framework 1.1以前では、代わりにMainMenuコントロールを使用します。MainMenuコントロールについてはここでは説明しませんが、基本的な使い方はMenuStripコントロールとほぼ同じです。 Visual Studioのフォームデザイナを使用する方法Visual Studioのフォームデザイナを使えば、直感的な操作で簡単にメニューを作成する
'自分自身の実行ファイルのパスを取得する Dim appPath As String = _ System.Reflection.Assembly.GetExecutingAssembly().Location //自分自身の実行ファイルのパスを取得する string appPath = System.Reflection.Assembly.GetExecutingAssembly().Location; Assembly.GetExecutingAssemblyメソッドはDLL内で呼び出すと、そのDLLを表すAssemblyを返します。ですので、上記のコードをDLLで呼び出すと、appPathはDLLのパスになります。 CodeBase、EscapedCodeBaseプロパティで取得するAssembly.Locationプロパティの代わりにAssembly.CodeBaseプロパティやA
TraceやDebugのWriteメソッドでファイルに出力するTraceクラスのWriteメソッド(または、WriteLine、WriteIf、WriteLineIfなどのメソッド)はデフォルトでは出力ウィンドウだけにメッセージを出力します。ここでは、これをファイルにも出力する方法を紹介します。 なお、後述しますが、ここで紹介している方法はDebugクラスのWriteメソッドでも有効です。 DefaultTraceListener.LogFileNameプロパティを使用する方法簡単な方法は、DefaultTraceListenerクラスのLogFileNameプロパティに出力ファイル名を指定する方法です。Trace.ListenersプロパティのコレクションにはデフォルトでDefaultTraceListenerオブジェクトが格納されているため(名前は"Default")、これを取得し、L
ADO.NETによるデータベースのアクセスには大きく分けて2つの方法がある。1つは第2回および第3回で解説した.NETデータ・プロバイダによる「接続型」のアクセスである。そしてもう1つがデータセットとデータアダプタによる「非接続型」のアクセスである。前回の第4回では、非接続型のアクセスによりデータベースからレコードを取得した。今回および次回では、非接続型でのデータベース更新について解説する。 データセットによるレコードの取得 データベースの更新を行う前に、前回で解説したデータセットとデータアダプタによるレコードの取得について、次に示すサンプル・プログラムで簡単に復習しておこう。このプログラムでは、MSDEのサンプル・データベースであるpubsデータベースに接続してpublishersテーブルからpub_idカラムとpub_nameカラムについて全レコードを取得し、「publishers」と
分類:[C#] VS2010 C# ACCESS2007 or2010 MDBファイル お世話になります。 MDBファイル内に含まれるテーブルの更新日を取得したく、以下のようにしてみました。 ※テーブルの更新日付はMSysObjectsテーブルからとろうとしている。 string strCon = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};", strOutFile); OleDbConnection oleCon = new OleDbConnection(strCon); oleCon.Open(); OleDbCommand command = new OleDbCommand("select * from MSysObjects where Name='TB1' or Name='TB2'", o
業務アプリケーション構築において最も頻繁に利用され、開発者が実装に最も労力を要するであろうグリッドを徹底解説。 連載目次 .NETで(Visual Studio 2005を使って)Windowsアプリケーションを作成する場合、そのユーザー・インターフェイスの構築には、あらかじめ用意されたコントロール(あるいはコンポーネント)部品をフォームにドラッグ&ドロップしながら行うのが一般的であり、これはVisual Studioの大きな特徴でもある。そのようなコントロール部品は、.NETでは標準あるいはサードパーティにより多数用意されている。 そしてそのようなコントロール部品の中でも、特に業務アプリケーション構築において重要となるのが、 グリッド・コントロール である。いうまでもなくグリッド・コントロールは、データを表形式で表示し、セル内の値を編集したり、行追加によりデータを追加したりするためのもの
Top > プログラミング > .NET Tips > DataGridコントロール(System.Windows.Forms)DataGridコントロール(System.Windows.Forms)編メニューDataGridの現在のセルを取得、設定する DataGridの一番下の新しい行(*行)が表示されないようにする 新しい行の追加、編集、削除を禁止する DataGridの指定された座標位置の情報を取得する DataGridに新しい行が追加されたときの列の既定値を指定する DataGridに新しい行が追加されたときに列値が自動的にインクリメントされるようにする DataGridの行数を取得する DataGridで選択されている行を取得する DataGridの現在の行を正しく取得する DataGridで計算列、集約列を作成する DataGridのグリッド線を非表示にする DataGrid
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く