初めて投稿します。
C#のwindowsアプリを開発しています。
開発ツールはVS2010を使用しています。

datagridview内の制御について困っているので
知恵を貸してください。

datagridviewのEditModeをEditOnEnterに設定し、常に入力モードにしています。
また、CellValidatingを使用し、各セルの必須チェックなどのエラーチェックを
おこなっています。

Enterキー押下でCellValidatingイベントが発生し、エラーチェックを行う
ことには問題ないのですが、矢印キーやマウスでのセル移動時にも、
CellValidatingイベントが発生します。
矢印キーやマウスでの操作の場合はCellValidatingイベントを発生させずに
したいのですが、どうすればよいのでしょうか?

知っている方がいれば、知恵を貸してください。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

private void dataGridView1_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)


{
//変更がなければ何もしない
if (e.FormattedValue == dataGridView1[e.RowIndex, e.ColumnIndex].FormattedValue)
return;
}

この回答への補足

ありがとうございます。

上記の方法でためしてみましたが、今度は、
空白のセルでEnterキーを押下したときにエラーが
発生しませんでした。

Enterキーではエラーチェックを行い、エラーがあればフォーカスを移動させない。
矢印キーではエラーのチェックを行わず、自由にセル内の移動が行えるようにしたいのです。

不可能なのでしょうか?

補足日時:2011/04/21 16:45
    • good
    • 0

CellValueChangedイベントで処理を行ってはどうでしょう?

この回答への補足

ありがとうございます。

CellValueChangedも考えたのですが、いくつか問題があり断念しました。

たとえば、空白のセルにフォーカスがあった状態で、
Enterキーを押下すると、空白はエラーにしないといけないのです。
CellValueChangedイベントだと、セルの内容が変わっていないので、
エラーにならないのです。
また、CellValidatingを選んだのは、エラーが発生した場合、e.Cancel = true
を使用し、フォーカスを遷移させないようにするためです。

Enterキーを押下したときは、エラーチェックを行い、
矢印キーやマウス操作の場合はエラーチェックを行わないようにしたいのです。

補足日時:2011/04/20 18:06
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qファンクションキーの使い方

Macで、入力した文字をファンクションキーでカナ変換やローマ字変換するにはどうしたらいいのでしょうか?

Windowsではf7、f8、f9などで変換できたのに、ついクセで押してしまうのですが変換されずイライラしちゃうんです(泣)

Aベストアンサー

Fnキーがあるキーボードなら、Fnキーを押しながら、ファンクションキーを押してください。
システム環境設定>キーボードとマウス>キーボードで、「F1、F2などのすべてのキーを標準のファンクションキーとして使用」(Mac OS Xのバージョンにより、異なる文言になります)にチェックを入れると、Fnキーを押さなくても、ファンクションキーがダイレクトに使えるようになります。

QC#での開発に苦戦していて、アドバイスください

仕事でC#でWebアプリケーションでの業務系システムの開発を担当する事となりました。
プログラミングはPHPの経験が1年ぐらいの初心者なのですが、
C#での開発に悪戦苦闘をして、頭がパニックな状態にあります。
どうか自分なりに整理がしたくて、アドバイを頂いたいです。

--------------------
▼開発環境
・.NetFlamework4
・C#でのWebアプリケーション
・SQL Server 2008
--------------------

4月からの中途採用でして、入社前に請負契約や開発環境などが決定しておりました。
また、インフラが主流の会社でしてシステム開発で他にアドバイスを聞く先輩もいない。
(そこを頑張って欲しくて採用されたのですが・・・)

ただの素人の愚痴になってしまいそうですが。
以下の点で苦しんでいます。
どなかたアドバイをお願いいたします。

---------------------
(1)C#でWindowsアプリケーションなどとコードの記述が違う。

(2)C#といってもC#Windowsアプリケーションやコンソール系が主流で、Webアプリ開発の情報が少ない。

(3)Googleなどの検索しても情報が少ない。

(4)参考とする書籍が少ない。

(5)Visual Studioとの関連で混乱をしてしまう。

(6)PHPのようにHTMLタグやビューの制御がしづらい。
もはや(Response.Write)のオンパレードで、汚いソースとなっております。

(7)コントローラーの独自カスタマイズができない。
システム要件として、GridView、ListView、Loginコントローラーなどのカスタマイズが必要なのですが、
コントローラーが理解しづらい、システム仕様を満たせるのか分からない。などと苦戦をしています。
コントローラーは使わずに、ゼロからプログラミングした方がよいのでしょうか?
---------------------

読んだ書籍は以下となります。
http://www.amazon.co.jp/%E3%81%AF%E3%81%98%E3%82%81%E3%81%A6%E3%81%AEASP-NET4%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-Visual-%E7%B7%A8-TECHNICAL-MASTER/dp/4798029270

どうぞ宜しくお願いいたします。

仕事でC#でWebアプリケーションでの業務系システムの開発を担当する事となりました。
プログラミングはPHPの経験が1年ぐらいの初心者なのですが、
C#での開発に悪戦苦闘をして、頭がパニックな状態にあります。
どうか自分なりに整理がしたくて、アドバイを頂いたいです。

--------------------
▼開発環境
・.NetFlamework4
・C#でのWebアプリケーション
・SQL Server 2008
--------------------

4月からの中途採用でして、入社前に請負契約や開発環境などが決定しておりました。
また、インフラが主流の会社で...続きを読む

Aベストアンサー

>読んだ書籍は以下となります。
>http://www.amazon.co.jp/%E3%81%AF%E3%81%98%E3%82%81%E3%81%A6%E3%81%AEASP-NET4%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-Visual-%E7%B7%A8-TECHNICAL-MASTER/dp/4798029270

読むのはいいですけど理解はしました?
とりあえず簡単なサンプルから理解していくしかないんじゃないかなぁ

あとはこの辺熟読してみるとか
http://msdn.microsoft.com/ja-jp/asp.net/default

Qファンクションキーの使い方

Word2003です。
一般的な使い方(カタカナに変換、英数に変換)以外のファンクショキーの使い方を調べているのですが具体的な使い方がわかりません。
使い方を教えてください。
F7 「文章校正を表示」の使い方
F8 「選択範囲の拡張」の使い方
F9 「選択したフィールドの更新」の使い方
F10 「メニューバーをアクティブにする」の使い方

Aベストアンサー

ヘルプ→Microsoft Office Word ヘルプで、検索に「ショートカット キー」と入力して検索、「ショートカット キー」という項目を選択して表示します。
検索の「ショートカットとキー」は、半角か全角スペースで区切って入力します。

ショートカットキー一覧の最後のほうの、キーの組み合わせにファンクションキーの説明があります。
が、説明内容はあっさりしているので、これでは分からないかもしれません。

F7 文章校正を表示
 文章校正/スペルチェックを実行して、結果を表示します。
F8 選択範囲の拡張
 カーソルをどこかに置いてF8を何回か押してみてください。
 押すごとに選択範囲が広がって、最終的に全選択になります。
 矢印方向キーで選択範囲を変更できます。
 [Esc]、方向キーの順で選択をキャンセルできます。
F9 選択したフィールドの更新
 http://office.microsoft.com/ja-jp/word/HP051893901041.aspx?pid=CH061047111041
 フィールドコード表記されている内容を更新します。
 フィールド、フィールドコードはヘルプに詳しく出ています。
F10 メニューバーをアクティブにする
 F10を押すと「ファイル」メニューがアクティブ(選択状態)になります。
 [Tab]キーで、編集、表示、挿入、・・・、ヘルプとメニューを移動します。
 方向キーを押すと、プルダウンのサブメニューが開き、[Esc]でキャンセルできます。
 [Ctrl]+[Tab]でツールバー選択の移動ができます。
 1つのツールバー内は、左右方向キーで移動します。
 

ヘルプ→Microsoft Office Word ヘルプで、検索に「ショートカット キー」と入力して検索、「ショートカット キー」という項目を選択して表示します。
検索の「ショートカットとキー」は、半角か全角スペースで区切って入力します。

ショートカットキー一覧の最後のほうの、キーの組み合わせにファンクションキーの説明があります。
が、説明内容はあっさりしているので、これでは分からないかもしれません。

F7 文章校正を表示
 文章校正/スペルチェックを実行して、結果を表示します。
F8 選択範囲...続きを読む

QC# アプリ終了時に設定を記憶し、起動時に呼び出す

Visual Studio C# 2012でアプリを作成しています。
以下のような処理ができるようにしたいのですが、何か良い方法はありますでしょうか?

---------------------------------------------------------------
numericupdown にある値を入力

アプリを終了

アプリ起動時に、終了する前に入力していた値をデフォルトで表示させる。
---------------------------------------------------------------

まだC#の勉強を始めたばかりの初心者です。
何か良い方法があれば教えて頂ければと思います。

よろしくお願いいたします。

Aベストアンサー

複雑なアプリケーションでは別の方法がありますが……。

とりあえず,このサイズであれば,
1. [プロジェクト]メニュー - [(プロジェクト名) のプロパティ]を選択し,プロパティを開く
2. [設定]タブで,名前を入力し,型を「decimal」 (NumericUpDown.Valueの型),スコープを「ユーザー」にする
3. フォームデザイナで対象のNumericUpDownコントロールを選択する
4. [プロパティ]ペインで(ApplicationSettings)を開き,(PropertyBinding)を選択し,右に出てきたボタンを押す
5. ['(コントロール名)'のアプリケーション設定]ダイアログで,コントロールのプロパティと2.で作った設定の関連付けを行う。
 今回は,Valueに対して設定を行う
6. [OK]ボタンをおしてダイアログを閉じる
7. フォームのOnFormClosedをoverrideするか,FormClosedイベントのハンドラを作成し,
Properties.Settings.Default.Save();
 の1行を追加する
で可能です。
%LocalAppData%\アプリケーション名\アプリケーション名.(ランダム文字列?)\バージョン\user.config
にデータが保存されています。

ref) Windows フォームのアプリケーション設定
http://msdn.microsoft.com/ja-jp/library/0zszyc6e.aspx

複雑なアプリケーションでは別の方法がありますが……。

とりあえず,このサイズであれば,
1. [プロジェクト]メニュー - [(プロジェクト名) のプロパティ]を選択し,プロパティを開く
2. [設定]タブで,名前を入力し,型を「decimal」 (NumericUpDown.Valueの型),スコープを「ユーザー」にする
3. フォームデザイナで対象のNumericUpDownコントロールを選択する
4. [プロパティ]ペインで(ApplicationSettings)を開き,(PropertyBinding)を選択し,右に出てきたボタンを押す
5. ['(コントロール名)'のアプリケーシ...続きを読む

Qキーボードのファンクションキーの使い方について

パソコン歴10年ほどになり今更と言う感じなのですが、キーボードについている「F1~F12」「PrtSt・Pause」「Ctrl・fn・A/t」の機能がわかりません。

一般的な役割をご存知のかた教えてください。
「機能紹介」みたいなサイトをご存知のかたがいらしたら是非教えていただきたいです♪

よろしくお願いします。

Aベストアンサー

ども。

ファンクションキー「F1~F12」は、主にソフトウェアによって機能を定義されています。
Wordでは、「F1」→「ヘルプ」、「F4」→「繰り返し」、「F12」→「名前をつけて保存」など頻繁に行う操作を登録してあり、1アクションで済みます。

「PrtSt」はたぶん「Print Screen SysRq」だと思います。
「PrtSt」を押したときに、デスクトップをビットマップ画像としてクリップボードに保存されます。キャプチャ機能です。
ペイントソフトでペーストすればすぐわかります。

「Ctrl」「Alt」はショートカットキーを使うときの補助キーです。
詳しい使い方の例として、Windowsのヘルプとサポートセンター、「検索」→ショートカットキーと検索してください。
「Windows ショートカット キーの概要」を参照してください。
使い方と説明があります。
この使い方は、アプリケーションでもあるので、使いこなせればマウスに頼らずキーボードですばやく操作を行うことができるようになります。

最後に「fn」キーですが、主にテンキーの無いノートパソコンやコンパクトキーボードにある機能です。
「fn」キーを押している間だけ、有効になるキーがあります。
fnキーと同じ色をしている文字がそれです。

これによって臨時のテンキーなどが割り振られています。
使い方はショートカットキーと似たようになっています。

ども。

ファンクションキー「F1~F12」は、主にソフトウェアによって機能を定義されています。
Wordでは、「F1」→「ヘルプ」、「F4」→「繰り返し」、「F12」→「名前をつけて保存」など頻繁に行う操作を登録してあり、1アクションで済みます。

「PrtSt」はたぶん「Print Screen SysRq」だと思います。
「PrtSt」を押したときに、デスクトップをビットマップ画像としてクリップボードに保存されます。キャプチャ機能です。
ペイントソフトでペーストすればすぐわかります。

「Ctrl」「Alt」はショートカ...続きを読む

QVB2005 DATAGRIDVIEWでの矢印キーの制御について

お世話になります。
VB2005で開発しています。
DATAGRIDVIEW内の矢印キーを制御できないものかという質問です。
セルが1行に2個あります。
2個目のセルにカーソルを合わせて、文字の最後から←を一つずつ押していくと、カーソルが一文字ずつ前に移動し、先頭に来た状態で、←を押すと、1個目のセルにカーソルが移動してしまいます。
セルの先頭にカーソルがある場合、←を押しても移動しない方法ってあるのでしょうか?
よろしくお願いします。

Aベストアンサー

キーワードは、
・System.Windows.Forms.DataGridView.EditingControlShowing(イベント)
・System.Windows.Forms.DataGridView.CellEndEdit(イベント)
・System.Windows.Forms.DataGridViewTextBoxEditingControl(コントロール)

下記ページが参考になります

DOBON.NET > プログラミング道 > .NET Tips > DataGridView
DataGridViewでセルが編集中の時にキーイベントを捕捉する
http://dobon.net/vb/dotnet/datagridview/textboxevent.html

Qファンクションキーの使い方

キーボードの上にF1からF12までありますけど、
あれを例えばF1を押したらIEが立ち上がるとかっていうふうに、設定できないんですか?F3は検索するやつがでますよね。
そもそも何のためにあるんでしょうか?

Aベストアンサー

今はマウスさえあれば、一通りのことができますが、昔は、すべて手でコマンドを打ち込まなければなりませんでした。その時に、ファンクションキーに機能を割り当てて置くことができると、とても便利だったわけです。多くのキーボードにファンクションキーがあるのは、その頃の名残だといえるでしょう。
本当はなくても困らないキーかも知れませんが、今でも多くのアプリケーションがこのキーに、単独で、また、その他のキーと組み合わせることによって色々な機能を持たせています。

例えば、
大抵のアプリケーションでは、[F1]でヘルプを呼び出せます。
日本語変換システムでは、確定前に[F6]~[F10]を押すことで、それぞれ、ひらがな/カタカナ/半角カナ/英大文字/英小文字を選択できたりします。
また、インターネットエクスプローラでは、[更新]が割り当てられた[F5]は、結構多くの人が使っているのではないでしょうか?

ファンクションキーに割り当てられる機能は、アプリケーションによっても少しずつ違ってきますが、よく使う機能は覚えておくと便利かもしれません。

最後に、ご要望のアプリケーションの割当てです。Windows単独ではできませんが、別途、アプリケーションをインストールする事で可能になります。フリーのアプリケーションをご案内しておきます。

●Fらんちゃ~:
http://www.vector.co.jp/soft/win95/util/se111920.html
●キーワードランチャー:
http://www.forest.impress.co.jp/library/keywordlauncher.html

参考URL:http://www.vector.co.jp/soft/win95/util/se111920.html,http://www.forest.impress.co.jp/library/keywordlauncher.html

今はマウスさえあれば、一通りのことができますが、昔は、すべて手でコマンドを打ち込まなければなりませんでした。その時に、ファンクションキーに機能を割り当てて置くことができると、とても便利だったわけです。多くのキーボードにファンクションキーがあるのは、その頃の名残だといえるでしょう。
本当はなくても困らないキーかも知れませんが、今でも多くのアプリケーションがこのキーに、単独で、また、その他のキーと組み合わせることによって色々な機能を持たせています。

例えば、
大抵のアプリケ...続きを読む

QC#とJ#について

現在VS2003で、VB及びC++を使っているのですが、C#とJ#は使ったことがありません。

以前、J#はJAVA言語だと聞いたような気がするのですが、C#はC言語なんでしょうか。(構文などが似ているので・・・)J#とC#が何であるか教えていただければと思います。

Aベストアンサー

こんにちは。

C#
http://mag.autumn.org/Content.modf?id=20050504145851

比較サイトを載せましたが、参考になりますか?

C#はマイクロソフトの色も持っていますけど、一般的になっていますのでこれからやるんなら良いかもしれません。
でも、C++使える方がよっぽど魅力的です。

J# -> Microsoft J# (Visual J#)
http://www.gotdotnet.com/japan/team/vjsharp/

マイクロソフト製Javaといっているのが、このJ#ですよね。

こちらに関しては、マイクロソフトに大分偏りますので参考サイトから覗いて見てください。
ネット上でも、あまりJ#を扱っているところは少ないのでは無いでしょうか?

でわ!

Qファンクションキーの使い方

F1キーとかF9キーとかにどんな機能が入っているかって調べる方法はあるのでしょうか?
友達が、たくさん開いているプログラムを、ボタンひとつで小さくしているのをみて、
便利だと思いながら、どこを押したのか聞きそびれてしまいました。

Aベストアンサー

こんなのはどうですか?↓

参考URL:http://www.shinko-keirin.co.jp/kojoho/kjohoNEW/img01/114g02/114g02.html

QDataGridViewでのソート制御

はじめまして。
Winアプリを作成していますが、ネットで検索をかけても
どうしても分からない事があるのでお教えいただけないでしょうか?

【環境】
Window XP
VS2005 VB.net

【質問】
DataGridViewでソートを行う際にデータをNULL(Nothing)にした部分が
ソートに反映されてしまうのですが、どうにかソートされないように
する方法はありますでしょうか?

例:
データ1
データ2
データ3
NULL
NULL


ソートを行うと
NULL
NULL
データ1
データ2
データ3

希望値としては以下です。
データ1
データ2
データ3
NULL
NULL

もともとはDataGridViewのグリッドをデータ数に関わらず
常に表示したいことから、行き詰ったのですが
どなたか良い方法をご存知ではないでしょうか?
よろしくお願いいたします。

Aベストアンサー

方法は2種類かな
1つは データソース自体にソート用の列を設ける
もう一つは DataGridViewのSortメソッド用にIComparer インターフェイスを継承したクラスを作成して ソートメソッドに与えてやる
このとき引数の Objct xが DBNullだったら DBNullのほうが大きいと返答をするよう
SortメソッドはGridDataViewのColumnHeaderMouseClickイベントなどで使う感じだと思います
ちょうど MSDNのColumnHeaderMouseClickイベントにソートの制御の例が載ってますよ
ただこれは 別の列でソートする例ですけどね
後は GridDataViewのSort(IComparer)メソッドの例が参考になるかも

昇順の場合だけならまだ楽ですが、降順にソートする場合も考慮しないといけないのだと大変だと思いますよ


人気Q&Aランキング