カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

クリップボードを扱う C#

Visual C#でクリップボードを操作してみましょう。
クリップボードを扱うには以下の参照が必要です。

using System.Windows.Forms;

クリップボードに文字列をコピーする

Clipboard.SetText("サンプル文字列");

クリップボードの文字列を取得する

//クリップボードのデータが文字列かどうか確認
if (Clipboard.ContainsText())
{
    //文字列であれば取得する
    //取得できないときは空の文字列(String.Empty)が返ってきます。
    Console.WriteLine(Clipboard.GetText());
}
3,558 views

匿名スレッドの実行 VisualC#

スレッドを定義します。

Thread tMain = new Thread(new ThreadStart(
    delegate()
    {
        // 実行したい処理
    }
    ));

バックグラウンドで実行するよう設定

tMain.IsBackground = true;

スレッドを開始

tMain.Start();

バックグラウンド処理からメインスレッドのメソッドや、フォームのコントロールを触りたいときは
デリゲートを使用します。以下を参考にしてください。
[デリゲート (delegate)]

1,528 views

VisualC#でMDBにアクセス

Windows7 64bit版のVisual C# 2008を使用してAccessのデータベースに
アクセスするアプリケーションを作っていたら以下のようなエラーに遭遇しました。

「’Microsoft.Jet.OLEDB.4.0′ プロバイダはローカルのコンピュータに登録されていません。」
(InvalidOperationException)

これは64bitのPCで開発することに起因するようです。
ビルドする際に32bit(x86)を対象にする必要があります。
以下、その方法です。

構成マネージャ

[ツール]-[オプション]を開きます。

左側のツリー表示に[プロジェクトおよびソリューション]-[全般]を選択します。
右側にある[ビルド構成の詳細を表示]にチェックを入れます。

※左側のツリー表示に[プロジェクトおよびソリューション]がない場合、
[すべての設定を表示]にチェックを入れます。 続きを読む…»

1,748 views

C# WebBrowserのレンダリングモード

Visual C#にてブラウザを使用したアプリケーションを作成したとき、
WEBページを表示すると表示がおかしいと思って、ユーザーエージェントを確認してみると
IE7となっていました。

環境はWindows7でIE9なのになぜだろう?と思いました。
どうやら作成したアプリケーションではレンダリングモードが「7」で実行されているようです。

解決するにはレジストリを編集し、レンダリングモードを変更してやらないといけません。

ユーザーエージェントのレジストリキー

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION

レンダリングモードのレジストリキー

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_DOCUMENT_COMPATIBLE_MODE

ユーザーエージェント、レンダリングモードをIE9にするには、それぞれのレジストリキーに
ユーザーエージェントは「9000」、レンダリングモードは「90000」という値を設定します。
続きを読む…»

10,089 views

interface, implements, abstract

・interface(インターフェイス)
備えているべき機能(メソッド)の名前
抽象メソッドを定義

・implements(実装)
interfaceで定義された全機能(メソッド)のオーバーライド(Override)で定義が必要

・abstract修飾子
抽象メソッドの定義時に使用
省略可

1,423 views