2011年4月7日木曜日

ビットマスク

ビットが立っているかのチェック

tmp And flg1
tmp に flg1 のビットが立っていれば True


ビットを立てる

tmp Or flg1
tmp に flg1 のビットを立てる


ビットを切り替える

tmp xor flg1
tmp の flg1 のビットを切り替える

VBA Me.controlsのコントロールの割り当て

Access2000 VBA
Me.Controlsでオブジェクトにに割り当てる

例 コンボボックス

dim cmb as combobox

set cmb = Me.Controls("コンボボックス1")

setをつけないとエラーになる。

2011年2月22日火曜日

.NET DataGridView.CellValidatingイベントによる入力値の検証

.NET DataGridView.CellValidatingイベントによる入力値の検証

詳しくは DOBON.NET 様の
DataGridViewのセルに入力された値が正しいか確かめる を参照

e.FormattedValue で入力値を取得できる。

DataGrideViewから取得したい場合は
DataGridView.Rows(e.RowIndex).Cells(e.ColumnIndex).EditedFormattedValue で取得する。

DataGridView.Rows(e.RowIndex).Cells(e.ColumnIndex).Value や
DataGridView.Rows(e.RowIndex).Cells(e.ColumnIndex).FormattedValue には
入力前の値が入っている。

2011年2月16日水曜日

.NET DataGrideView クリップボードの値をセルへペースト

DataGridView は標準ではセルのコピーは実装されているが。
セルへのペーストは実装されていない。
もし標準のまま値の貼り付けをしたい場合は、セルを編集モードにしてから貼り付けなければならない。
セルへのペーストを実装するには、DataGridViewの派生クラスを作成して実装すれば良い。

セルへのペーストを実装する為に、サンプルを使用したサイト。
NonSoft様の
DataGridViewに便利なメソッドを追加するサンプル(VB.NET)
を使用させて頂きました。

DataGridViewに便利なメソッドを追加するサンプル(VB.NET)

ではペースト時に、複数セルを選択した状態でペーストすると、複数セル選択中の最後に選択されているセルからペーストが始まる模様。

2011年1月23日日曜日

.NET ComboBox オートコンプリート

オートコンプリート機能の実装

プログラムでコンボボックスに値を追加して表示する場合
コンボボックスのプロパティの設定値
AutoCompleteSourece : ListItems

AutoCompleteModeは下記のNone以外から選択

None オートコンプリート機能を無効にする。
Suggest 入力された文字に近い候補を探してドロップダウンリストを作り表示します
Append 入力された文字に近い候補を1つ探して、テキストエリアに表示します。
SuggestAppend SuggestとAppendの両方の機能を持ちます。

詳しくはHIROs.NET
オートコンプリート機能を実装するを参照

2010年12月15日水曜日

.NET DataTableから対象行を抽出する

DataTableから対象行を抽出する。

DataTable.Select メソッド (String)

フィルタ基準と一致するすべての DataRow オブジェクトを主キーの順に (主キーがない場合は追加された順に) 配列として取得します。

'宣言

Public Function Select ( _
filterExpression As String _
) As DataRow()
'使用

Dim instance As DataTable
Dim filterExpression As String
Dim returnValue As DataRow()

returnValue = instance.Select(filterExpression)

パラメータ
filterExpression
型 : System.String
行にフィルタをかけるために使用する基準。

戻り値
型 : System.Data.DataRow()
DataRow オブジェクトの配列。

解説
引数 filterExpression を作成するには、フィルタを作成するときに DataColumn クラスの Expression プロパティの値に適用する規則と同じ規則を使用します。


フィルタ式を使用して DataRow オブジェクトの配列を返す例を次に示します。

Private Sub GetRowsByFilter()

Dim table As DataTable = DataSet1.Tables("Orders")

' Presuming the DataTable has a column named Date.
Dim expression As String
expression = "Date > #1/1/00#"
Dim foundRows() As DataRow

' Use the Select method to find all rows matching the filter.
foundRows = table.Select(expression)

Dim i As Integer
' Print column 0 of each returned row.
For i = 0 to foundRows.GetUpperBound(0)
Console.WriteLine(foundRows(i)(0))
Next i
End Sub

詳しくはMSDNライブラリ
DataTable.Select メソッド (String)を参照