• ベストアンサー

DataGrid 内のセル(あるいは行)にフォーカスを移したい(アクテ

DataGrid 内のセル(あるいは行)にフォーカスを移したい(アクティブにしたい)のですが、その方法がわかりません。 Microsoft Visual Basic 2008 Express Edition で WPF アプリケーションを作成しています。 DataGrid 内にフォーカスを移そうとしているのですが、.Focus() ですと、DataGrid そのものにフォーカスが移って(DataGrid コントロールのふちが破線で囲まれる)しまいます。 セル(あるいは行)にフォーカスを移す方法があれば教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • unicoun
  • ベストアンサー率50% (1/2)
回答No.1

少しでもヒントになればと存じます。 セル選択でしたら、 DataGridViewのCurrentCellプロパティではだめでしょうか? DataGridView1.CurrentCell = DataGridView1(1, 1) 的外れであればすいません。

dell_OK
質問者

お礼

ご回答いただきありがとうございます。 Windowsフォームアプリケーションでなら DataGridView で、 教えてくださった方法でできるみたいですね。 WPFアプリケーションには DataGridView がなくて DataGrid を使っています。 この DataGrid では同じ方法ではできませんでした。 CurrentCell プロパティはあるので、 教えてくださった方法をヒントに試してみたのですが、 設定方法が異なるようで、同じ記述はできませんでした。 DataGrid.CurrentCell のヘルプを見て、 そこに書かれている方法を試しても、エラーになるので、 何か違う DataGrid のヘルプなのかと思っている次第です。 別の方法を思いついたら、また教えてください。

dell_OK
質問者

補足

他に回答が得られそうにないので締め切ろうと思います。 指定したセルへの移動はいまだにできていませんが、 コントロール内へのフォーカスの移動はできるようになりました。 質問に書いた破線で囲まれるのは回避できたようで、 先頭のセルへ移動なのですが、 grid.MoveFocus(New TraversalRequest(FocusNavigationDirection.First)) とする事で .Focus とは異なった動作をしてくれるようです。

関連するQ&A

  • 【WPF】DataGridのページング機能について

    Visual Studio2012にてVBを用いてWPFアプリケーションを作成しております。 Oracleデータベースから取得したデータをDataGridで表示する際に手軽にページング機能を搭載する方法はあるのでしょうか? SilverLightなどではDataPagerというコントロールを用いて手軽に実装できるようなのですが・・・。 以上、ご教授よろしくお願いいたします。

  • リストボックスとDataGridコントロールについて

    「Microsoft Visual Basic 2008 Express Edition」と「Microsoft SQL Server 2005」を使用して開発することになり勉強を始めている初心者です。 リストボックスとDataGridコントロールの違いについて教えて下さい。 テーブルからある条件のデータを一覧表示して、データの追加、修正、削除処理を行いたいと思っています。 追加、修正、削除処理は、別画面で行います。 この場合の一覧表示にはリストボックスとDataGridコントロールのどちらを使用する方がよいでしょうか?

  • DataGridView、1セルに複数コントロール

    Microsoft Visual C# 2005 Express Edition(.NET2.0)を使っています。※WinApp DataGridViewコントロールの1セルに、複数コントロールを設定する方法を模索しています。 この方法をしたい理由としては、 ・行の並び替えができる。 ・行の絞り込み(フィルター)できる。 ということからDataGridViewコントロールを使おうと考えております。 しかしながら、DataGridViewコントロールのセルには、数値や文字、1イメージ、1ボタンなど、各1つしか配置できません。 ここに、複数のコントロール(ボタンやチェックボックスなど)を配置したいのです。 コントロールをカスタマイズすれば、できるかもしれませんが、方法が分かりません。 かなり無茶な質問ですが、 どなたかご存じで有れば、ご教授よろしくお願いします。

  • Windowsアプリケーションのフォームのフォーカスについて

    Windowsアプリケーションのフォームのフォーカスについて Windowsフォームアプリケーションを、C/C++で作成しています。 開発環境:Visual C++ 2008 Express Edition OS:WindowsXP テキストボックスに入力され、 フォーカスアウトした時に入力値の判定し、 偽だった時はボタンを非アクティブにする処理を実装しています。 しかし、タブ移動でのフォーカスアウトは可能なのですが、 フォームにマウスクリックした時にフォーカスが変わりません。 フォームにフォーカスを持たせることはできないのでしょうか? また、何か良い方法があったら教えていただけると幸いです。 宜しくお願いします。

  • DataGridの行番号

    クライアント:Windows2000 Professional VB.net 2003 .net初心者です。 .net標準のDataGridコントロールにDB(Oracle)より取得したデータを表示させようとしております。 その際に、DBの項目のほかに、行番号を「1」から順に昇順で振っていきたいと思っております。 プロパティの設定で出来るものと思っておりましたが、どうもそうでないようで、実現の方法をご存知の方、いらっしゃいましたら、宜しくご教授お願いします。

  • WPFのDatagridの縦スクロール

    VisualBasic2010を利用してWindows Formアプリケーションを 開発しております。 その際にForm上にElementHostを配置しWPFで構築した DataGridを設定しグリッドにデータを表示しております。 データ表示自体は問題なく行えているのですが、 Datagridの縦スクロールをWindows Form上に配置する ボタンから制御したいと考えております。 このような制御の方法をご存知の方がいらっしゃいましたら ご教授頂けますと幸いです。 WPF側 <UserControl x:Class="Grid_Main" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="clr-namespace:_01_AAAA" mc:Ignorable="d" d:DesignHeight="200.373" d:DesignWidth="300" Height="Auto" Width="Auto"> <DataGrid ItemsSource="{Binding}" ScrollViewer.CanContentScroll="True" VirtualizingPanel.IsVirtualizing="True" VirtualizingPanel.VirtualizationMode="Recycling" ScrollViewer.IsDeferredScrollingEnabled="True" AutoGenerateColumns="False" CanUserAddRows="False" CanUserDeleteRows="False" HeadersVisibility="None" Margin="0,0,0,0" BorderBrush="{x:Null}"> <DataGrid.Columns> <DataGridTemplateColumn > <!-- 表示時のセルのテンプレートを指定 --> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <!-- 表示時のセルのテンプレートに同プロジェクト内のクラスを指定 --> <local:Grid_Detail /> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> <!-- 編集時のセルのテンプレートを指定 --> <!-- 表示専用であれば定義不要 --> </DataGrid.Columns> </DataGrid> </UserControl>

  • DataGridコントロールのデータのコピー

    いつもお世話になっております。 VisudalBasic6の開発環境で Microsoft DataGrid Control(SP6)のDataGridコントロールを使用して、 Oracleデータベースから得られたテーブルのデータを表示させているのですが、 DataGridコントロールに表示されたすべてのデータをコピーし、エクセルなどにペーストすることはできないでしょうか? 方法をご存知の方おられましたらご教授願えないでしょうか?

  • VisualBasic6.0のDataGrid中の動きについて

    フォーム上、DataGrid中のセルについての動きを伺いたい。 教えていただきたいこと:   (1)enterキーを押した時点、カーソルが自動的に同列の翌行のセルへ移動する。   (2)セル間のリンクできますか?    例:B2セルに数字1を入力したら、B5セルに自動的に決まった文字が表示される。  解決方法を教えてください、よろしくお願いいたします。

  • Visual Studio Express Editionについて

    プログラムの勉強を初めようと思っております。もちろん初心者です。 簡単なアプリケーションを作れるようになりたいです。 無償のソフトを探していたら、Microsoft Visual C++ 2005 Express Edition を見つけこれでいいかと思い、更に調べてみると同様のソフトで、 Microsoft Visual BASIC 2005 Express Edition、 Microsoft Visual C# 2005 Express Edition、 もある事が分かりました。BASIC、C言語は10年くらい前にかじり程度 勉強しましたが、完全に忘れました。 一から勉強し直すとして、どの言語がお勧めでしょうか? それぞれの良い所、悪い所も教えて頂けるとありがたいです。 ご存知の方いらっしゃいましたら、ご教授お願いします。

  • VB6のDataGridコントロールが良く分かりません。

    初めて質問させて頂きます。 検索エンジンやMSDN等を何時間も見ても分からないことがあります。 開発環境はVB6.0で、 ファイルから読み込んだり(今回はcsv)やサブウィンドウから入力した値を メインウィンドウのリストボックスに表示させて保存する等の簡単なプログラムを 作ってと会社の先輩から課題を出され、作りました。 次に、リストボックスの部分をDataGridコントロールに置き換えてと指示されましたが、 色々と調べても一向に進みません。 リストボックスの時は、1行2列といった配置だったので 今回もそれにしようとしましたが、1行から複数行にするやり方が分かりません。 また、DataGridのセルに値を入れる方法も分かりません。 VB.NET(あってますか?)でのやり方はネット上に散見していましたが、 VB6.0では皆無でした。 したいことは以下の2点です。 ・1行複数列を複数行2列にしたい。絵で書くとこんな具合です。 |COL1|COL2|COL3|COL4|COL5|COL6|を |COL1|COL2| |COL3|COL4| |COL5|COL6| ※COLは、Columnの略です。 ・セルに値を入れる(代入ともいう?)。 本当に色々と調べたのですが、目ぼしきものが見当たらず VBを始めたばかりでして不明なことも多く見逃していることもあるかもしれません。

専門家に質問してみよう