FC2ブログ

»[C#]VS2008のWebBrowserコントロールの制御まとめ

VS2008のWebBrowserコントロールの制御まとめ

1.コントロールへ値入力と選択
1-1コントロールにname属性が存在する場合の操作
 ・テキストボックス
  webBrowser1.Document.All
   .GetElementsByName("コントロール名")(0).InnerText = "文字列";
 ・コンボボックス
  webBrowser1.Document.All
   .GetElementsByName("コントロール名")(0).SetAttribute("value", "値");
 ・ラジオボタン
  webBrowser1.Document.All
   .GetElementsByName("コントロール名")(1).SetAttribute("checked", "true");
 ・チェックボックス
  webBrowser1.Document.All
   .GetElementsByName("コントロール名")(0).SetAttribute("checked", "true");

1-2コントロールにname属性が存在しない場合の操作
  //例:ボタンをクリックする
  //操作したいフォームにあるタグをコレクションとしてセットし、
  //value属性はわかっているのでその名称をループで探す
  //存在すればイベントハンドラー実行
  HtmlElementCollection myElements
   = webBrowser1.Document.GetElementsByTagName("input");
//タグ名称 ┘
 foreach (HtmlElement myElement in myElements)
 {
               //「value属性」名称 ┐
   if (myElement.GetAttribute("value") == "← 追加")
   {
    myElement.InvokeMember("click"); //クリック
    break;
   }
  }

2.タグ内に存在するイベントハンドラー呼出し
 //例:コンボボックスを選択し、タグ内の「onChage」イベントを実行する。
 //HTML
  <select id="groupSelect" name="CGID" onChange="ChangeCGID( this.form )">
  <option value="2159">P-SYSPJ
   ・・・
  </select>

 //イベント実行
 //①コンボボックス選択
 webBrowser1.Document.All
   .GetElementsByName("CGID")[0].SetAttribute("value", "2333");
 //②イベント実行
 webBrowser1.Document.All
   .GetElementsByName("CGID")[0].RaiseEvent("onChange");

 
11:28 : PC関係トラックバック(0)  コメント(0)

»Firefox起動速度向上

Firefox起動速度向上をWEBで検索しながら
定番の設定をしました。
体感速度が上がった気がします。

【内  容】
1.Profileフォルダのバックアップ
 <フォルダ場所>
 C:\Documents and Settings\<ユーザ名>\Application Data\Mozilla\Firefox\Profiles\

2.Firefoxのツール>オプション関係
2-1 表示ページの履歴を変更
 プライバシー>履歴欄の履歴保存日付を90日→30日に変更。
2-2 ダウンロードファイルの記憶
 プライバシー>履歴欄の記憶のチェックを外した。
 2009052801Firefox速度向上

2-3 アドオンの更新自動化確認
 詳細>更新タブにあるアドオンのチェックを外す。
 2009052802Firefox速度向上

3.アドオン言語ファイルを削除
 外部ツールFirebootを利用する。
 Fireboot
 http://pearl-white.hp.infoseek.co.jp/fireboot/

 <使い方>
 ・Firefoxは終了する。
 ・Firebootを起動する。
 ・プロファイルのフォルダを指定する。
 ・内容確認して実行する

 2009052803Firefox速度向上


4.プロファイル(SQLite)の肥大化を防ぐ
 外部ツールTkSQLiteを利用する。
 TkSQLite
 http://reddog.s35.xrea.com/wiki/TkSQLite.html

 <使い方>
 ・Firefoxは終了する。
 ・tksqlite.exeを起動する
 ・メニュー>ファイル>開くより
  プロファイル内の該当ファイル(****.sqlite)を指定する。
  今回は容量が一番大きかったplases.sqliteのみ実行した。
 ・メニューバー>データーベース>Vacuumを選択し実行。

 2009052804Firefox速度向上

 
22:45 : PC関係トラックバック(0)  コメント(0)

»[C#]Kingsoft Spreadsheetの制御

Microsoft Officeと互換性が断然高い「Kingsoft Office」の中の
SpreadSheetをC#より制御できることがわかり早速テストをした。

ズバリ!
KingsoftのCOMインターフェースは、MSとそっくりです。

<利用アプリ>
 ・Visual Studio 2008 Pro
 ・Kingsoft Office 2010 Trial

<VSプロジェクト作成>
1.新しいプロジェクトよりWindowsフォームアプリケーションを作成。
2.COMの参照
 ソリューションエクスプローラの参照設定>参照の追加を選択

 2009050701C#-Kingsoft 2009050702C#-Kingsoft

3.コーディング
 以前EXCEL用に書いていたサンプルより引用
 Excel.Application ⇒ ET.Application
  ↑            ↑
  ここを変更するだけです。

 <サンプル>
 //EXCEL操作用変数宣言
 ET.Application appExcel = new ET.Application();
 ET._Workbook xlWorkBook;
 ET._Worksheet xlWorkSheet;

 //EXCELtempファイルパス
 string strAppPath = System.AppDomain.CurrentDomain.BaseDirectory;
 string strFilePass = strAppPath + "\\TEST.xlt";

 // 指定したファイルをオープン
 xlWorkBook = (ET._Workbook)(appExcel.Workbooks.Open(strFilePass,
          Missing.Value, Missing.Value, Missing.Value, Missing.Value,
          Missing.Value, Missing.Value, Missing.Value, Missing.Value,
          Missing.Value, Missing.Value, Missing.Value, Missing.Value));

 //EXCELシート変数代入
 xlWorkSheet = (ET._Worksheet)xlWorkBook.Sheets[1];

 //EXCELシートに数値入力
 for(int i=1;i<=10;i++)
 {
  xlWorkSheet.Cells[i, 1] = i.ToString();
 }

 //EXCELファイルを可視状態にする
 appExcel.Visible=true;

 2009050703C#-Kingsoft ← こんな感じになります。

 
16:11 : PC関係トラックバック(0)  コメント(0)

»[C#]CheckedListBoxのチェックボックスを制御

1.読み取り(Get)
 GetItemChecked(Index)    → 値:bool型
 GetItemCheckState(Index)  → CheckStateの列挙型の値(Checked、UnCheckedなど)

 Index:Itemsのインデックス

2.書込み(Set)
 ChekedListBox1.SetItemChecked(Index,Checked)

 Index:Itemsのインデックス
 Checked:チェック可否(bool型)

 
12:13 : PC関係トラックバック(0)  コメント(0)

»[C#]コンボボックスの項目の色を変更する方法

フォーム上のコンボボックスを条件によって項目の色を
変更する方法のメモ。
キーワード:DrowItem、オーナードロー

<サンプル仕様>
 フォーム上にコンボボックスとチェックボックスを配置
 チェックボックスがONの場合、該当するコンボボックスの項目を赤にする。

 2009021201コンボボックスの項目色を変える

<内 容>
①コンボボックスの「DrawMode」プロパティ変更
・OwnerDrawFixed
 アイテムの高さが均一、描画処理のみ実装。
・OwnerDrawVariable
  アイテムの高さが均一でない場合のオーナードロー
  描画処理のほかに、アイテムの高さを指定する処理が必要

②コンボボックスのDrowItemサンプル
 private void comboBox1_DrawItem(object sender, DrawItemEventArgs e)
  {
   //コンボボックス
   ComboBox myComboBox = (ComboBox)sender;
   //項目
   string myTextString = myComboBox.Items[e.Index].ToString();
   //ブラシ
   Brush myTextBrush;
   //項目名により項目名の色を変更
   if(checkBox1.Checked==true && myTextString=="代休")
   {
     myTextBrush=Brushes.Red;
   }
   else
   {
    myTextBrush=Brushes.Black;
   }

   //背景を描画する
   e.DrawBackground();

   //項目を描画
   e.Graphics.DrawString(myTextString,e.Font,myTextBrush,e.Bounds.X,e.Bounds.Y);

   //フォーカスを示す四角形を描画
   e.DrawFocusRectangle();

 }

<参考にさせていただいたサイト>
・VB.NETで作る!>VS.NETのカラーリストコンボ(オーナードローコンボ)を作る
 http://shinshu.fm/MHz/88.44/archives/0000030651.html
・DOBON.NET>ComboBoxの項目を自分で描画する
 http://dobon.net/vb/dotnet/control/cbownerdraw.html

 
12:20 : PC関係トラックバック(0)  コメント(0)