水曜日, 6月 08, 2011

DataGridView: 初期値を指定する

DataGridView を使うと、テーブル形式でデータを扱うことができます。

それぞれのコラムで、値を限定し、ドロップダウンリストで選択できるようにすることもできます。

ただし、この場合には、値に制限がつくことになるので、つねに決められた値を設定してやる必要があります。

つまり、新規にデータを追加する場合など、値を空白とすることはできません。

この際には、データを追加するたびに、初期値を設定してやる必要があります。

なぜかDataTableなどではデフォルト値を設定するメソッドがありません。

イベントをフックし、値を設定してやります。

次に示すコードは、それぞれのコラムの値に適応した初期値を新規作成されたデータに設定するやり方を示したものです。

private void dataGridView1_CellFormatting(object sender
                                    , DataGridViewCellFormattingEventArgs e)
        {
            if (e.Value == null)
            {
                switch (e.ColumnIndex)
                {
                    case 0:
                        e.Value=dataGridView1.Rows.Count;
                        break;
                    case 1:
                        break;
                    case 2:
                        e.Value = "Instant";
                        break;
                    case 3:
                        break;
                    case 4:
                        e.Value = "0";
                        break;
                    case 5:
                        e.Value = "0 sec";
                        break;
                }
            }
        }

本来ならば、設定するコラムでそれぞれデフォルト値を設定できるような仕組みになっているべきではあると思います。

Qt: 外部プログラムを起動する

  Qt/C++ のアプリは、外部へ直接アクセスできます。これはネットアプリでは不可能な Qt のメリットです。 外部プログラムを起動することもできます。QProcess::startDetached() を使うと独立したプロセスを立ち上げることができます。 この QProces...