出産前後の痔にはご注意!

例えば、TextBox1にFocusを設定しようとして「textbox1.f 」と打鍵しても、Focusが表示されませんが、削除されてしまったのでしょうか。また、IntelliSenseのメンバを追加できるのでしたら、その方法を教えていただけないでしょうか。

質問者からの補足コメント

  • 「自動メンバ表示」と「パラメーターヒント」にはチェックが入っていました。kikosiさんのアドバイスはチェックを外し、VBを再起動し、今度はチェックを入れるということでしょうか。であれば、やってみましたが、変化はありませんでした。
    「textbox1.fo」まで行くと、候補は3つしか現れません。①FindForm ②Font ③ForeColor です。

    No.1の回答に寄せられた補足コメントです。 補足日時:2017/11/11 09:13
  • 大丈夫です。やはり、「focus」は出てきません。大変なんだけど、再インストール必要ですかね。

    No.2の回答に寄せられた補足コメントです。 補足日時:2017/11/11 11:27
  • やはり、候補に入れなかったようですね。FocusはTextBox1でEnterを押したときにButton1にFocusを当てておけば、Button1をClickしたようになっていてとても便利だと思っていたのに残念です。PerformClickも使いましたが、Enterのコードが残って悪さをします。文面Childが気になります。英文なので、完全には理解していませんが…。KeyPressでしたらe.Hndled=Trueですみますが、PreviewKeyDownでEnterキーのコードを無効にするにはどうしたらいいでしょうね。

      補足日時:2017/11/11 17:30

A 回答 (4件)

This is by design. Methods and properties such as Focus, CanFocus, and Focused are intended for internal control use, so we don't show them in the list in oder to avoid confusion. We recommend that application programmers should use the Select method or the ActiveControl property for child controls, or the Activate method for forms.



これは設計の仕様です。Focus,CanFocusとFocusedのようなメソッドとプロパティは内部コントロールでの使用のためのもの、なので、我々は混乱を防ぐために、これらをリストに表示しないようにした。プログラマーは、Selectメソッド、子コントロールならActiveControlプロパティ、そしてFormsならActivateメソッドを使用するのをお勧めします。

とのことです。

手元に環境がないので、試していないが、試してみてください
    • good
    • 0
この回答へのお礼

kikosiさん、いろいろとお調べいただき感謝いたします。VB.NETはまだまだ初心者ですが、いろいろと探って試してみたいと思います。本当にありがとうございました。

お礼日時:2017/11/12 06:09

探してみたら、下のものがありました。

どうも、Focusメソッドはおすすめできない関数になっており、わざと表示しないようにしたようです。

https://developercommunity.visualstudio.com/cont …
    • good
    • 0
この回答へのお礼

kikosiさん、ベストアンサー設定後に書いています。いろいろと調べてみましたら、①と②はほぼ同じことができるようです。
①Button1.Focus
②ActiveControl=Button1

お礼日時:2017/11/12 06:43

textbox1は、TextBoxクラスであり、かつ、名前空間は、System.Windows.Forms


であってますか?

例えば、内部で、
Dim t As System.Windows.Forms.TextBox

t.f

で試してみてください
この回答への補足あり
    • good
    • 0

オプション-テキストエディタ-Basic-全般



の自動メンバ表示とパラメーターヒントを「ON/OFF」して最後にチェックしてみてください
この回答への補足あり
    • good
    • 0

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

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

QVB6.0の「vbFromUnicode」はVB.NETではどれに相当しますか?

VB6.0で、例:StrConv(Text, vbFromUnicode)とかで使用する、
「vbFromUnicode」(文字列を Unicode からシステムの既定のコードページに変換する)
は、VB.NETでは使用できないようです。(相当する定数はない?)

「vbFromUnicode」と同等の機能を、VB.NETで使用したいのですが、
どうすれば良いでしょうか?

Aベストアンサー

思いっきり、例文に「COM1」と書いてますが、USBに書き換えてくださいね^^;

それとふと思ったのですが
udtReaderWriterModeWithoutEncryption
変数は構造体ですよね?

メンバが
lngPortName
lngBardRate
というのは、型宣言をINTEGERに変換してますよね?

ちょっとばかり不安に思ったので、追記しておきました。

参考URL:http://okweb.jp/kotaeru.php3?q=1257613

QSPREAD(GrapeCity)のセルにフォーカスを設定するにはどうしたらいいのでしょうか?

VB.netで作成しています。
SPREAD(GrapeCity)の下記のイベントでSPREADのセルに入力された値をチェックしてエラーが無ければデータベースに登録、または更新をして入力エラーがあった場合、セルにフォーカスを設定するように記述していますがうまくフォーカスを設定する事ができません。

・SPREADのChangeイベント
・SPREADのKeyUpイベント
・SPREADのLeaveイベント
・SPREADのCellLeaveイベント

フォーカスを当てたいセルの行番号とカラム番号をSetActiveCellで指定していますが・・・
フォーカスを設定するにはどうしたらいいのでしょうか?
ご存知の方がいましたらアドバイス宜しくお願いします。
では、失礼します。

Aベストアンサー

サポートページを見ただけなので参考程度にお願いします。
http://file.grapecity.com/patches/SPREADNET25Win_ReleaseNote_2510122002.htm

上記ページの「制限事項と注意点」→「【イベント/メソッド】 」の中に「シート上に表示されていないセルに対してSetActiveCellメソッド呼び出し(またはActiveRowIndex/ActiveColumnIndexプロパティの設定)を行った場合、シートは自動的にスクロールされません。表示させる場合にはFpSpreadクラスのShowActiveCellメソッドを併用してください。 」とあります。
一度試してみては?
また、GrapeCityさんは意外とサポートが優秀ですよ。
以前、SPREADver3.0の頃は何回かバグとってもらいました。(非公開で最新ファイルくれました)
バグでなくても親切に対応してもらった覚えがあるので一度問い合わせをしたほうが近道かもしれませんね。

Q小数点を含む数値かどうか判断の判断方法

プログラム(VB.NET)初心者です。
どうぞよろしくお願いします。

テキストボックスに小数点を含んだ数値かどうかの
判断を行いたいのですが、どのようにチェックをすればいいかがわかりません。
どなたか、わかる方教えていただけたら幸いです。
サンプルソースがあると嬉しいです。
申し訳ありませんが、宜しくお願いします。

Aベストアンサー

TextBox1に入力された文字列をDecimalに変換してみて、エラーが起こるかどうかでチェックするサンプル
TextBox2にチェック結果を表示するようにしてあるが、
Flagが0以外の時エラーがあったことがわかる
------------------------------------------------------
Dim decimalVal As Decimal = 0
Dim Flag As Integer = 0

TextBox2.Text = "OK"
Try
decimalVal = System.Convert.ToDecimal(TextBox1.Text)
Catch exception As System.OverflowException
Flag = 1 'オーバーフロー
TextBox2.Text = "オーバーフロー"
Catch exception As System.FormatException
Flag = 2 '書式がおかしい
TextBox2.Text = "書式がおかしい"
Catch exception As System.ArgumentException
Flag = 3 'Null
TextBox2.Text = "未入力"
End Try

TextBox1に入力された文字列をDecimalに変換してみて、エラーが起こるかどうかでチェックするサンプル
TextBox2にチェック結果を表示するようにしてあるが、
Flagが0以外の時エラーがあったことがわかる
------------------------------------------------------
Dim decimalVal As Decimal = 0
Dim Flag As Integer = 0

TextBox2.Text = "OK"
Try
decimalVal = System.Convert.ToDecimal(TextBox1.Text)
Catch exception As System.OverflowException
Flag = 1 'オーバーフロー
TextB...続きを読む

QVBでグローバル変数を宣言するには

VB初心者ですが。クイズゲームのようなものを作成したいと考えてます。
Private Sub ~ End Sub の中で宣言した変数って他のところに呼び出したり(戻り値として渡す)出来るのでしょうか?
どこでも、いつでも呼び足せるグローバル変数の宣言とはどのようにやるのか、具体的に教えていただけないでしょうか?

Aベストアンサー

>Public a as Integerのように宣言して、初期化するにはどのように記述を行えばよいですか?

>Public a As Boolean = 0
のように記したら”コンパイルエラー”と出ました。

Booleanって整数値取れたかなと思いつつ。
Sub~End Sub内でa = 0を代入したりしてください

扱おうと言うことがあるかどうか疑問だけど

Public Const a As Integer = 10 'グローバルな定数の宣言

QCloseとDisposeの違い

みなさまこんばんわです。よろしくお願い申し上げます。

VB.NET 2008でコーディングしています。
CloseとDisposeの違いについて教えていただきたいのです。

これらのメソッドは、開いたファイルを閉じるときなどにも使いますが、今回お尋ねするのは、フォームを閉じるとき、しかも、自ら呼び出すとき(Me.Close() と、Me.Dispose() )のみに限ったこととしてお話しさせていただきます。

たとえば、ShowDialog() で呼び出したフォームは、そのフォーム内でMe.Close() しても、プロセスは残り、たとえば、タイマーコントロールのイベントに記述していますと、それは実行され続けます。

これを防ぐために、Me.Dispose() を使います。すると、きれいにプロセスは終了し、イベントは発生しない模様です。

そこで、「フォームを閉じる」意味のMe.Close() をすべてMe.Dispose() に変えてしまいました。確実にプロセスを破棄出来ると思ったからです。Webで調べると、違いは「再利用できる、できないの違い」という答えがありましたが、それはきっと、ファイルやオブジェクトのことで、フォームの場合は、再びShowまたはShowDialogで表示させることは可能でしたので、特に問題は感じていませんでした。

ところが、アプリケーション設定で、「最後のフォームを閉じるとき」にアプリケーションがシャットダウンする設定になってるのに、シャットダウンしてくれないことが起こりました。調べてみると、Me.Dispose() が原因。Me.Close() に変えるとうまくいきました。

わけわからなくなってきました。。。

ちなみに、その残ったフォームは、スタートアップフォームであり、別のフォームからShowまたはShowDialogメソッドで呼び出したものではありません。

ここで4つの仮説を立ててみました。

1. ShowDialogで呼び出したフォームは、Me.Dispose()、Showで呼び出した、あるいは、スタートアップフォームは、Me.Close() すれば破棄できる

2. ShowDialogで呼び出したフォームは、Me.Dispose()、スタートアップフォームは、Me.Close()、Showで呼び出したフォームは、どちらでも、破棄できる

3. 呼び出し方ではなく、別の要因が存在する

4. 併記する必要がある場合がある

Me.Close()
Me.Dispose()

または、

Me.Dispose()
Me.Close()



どれが正しいのでしょうか?どなたがご存じの方がいらっしゃいましたら、ご教授いただけませんでしょうか? どうぞよろしくお願い申し上げます。ありがとうございました。

みなさまこんばんわです。よろしくお願い申し上げます。

VB.NET 2008でコーディングしています。
CloseとDisposeの違いについて教えていただきたいのです。

これらのメソッドは、開いたファイルを閉じるときなどにも使いますが、今回お尋ねするのは、フォームを閉じるとき、しかも、自ら呼び出すとき(Me.Close() と、Me.Dispose() )のみに限ったこととしてお話しさせていただきます。

たとえば、ShowDialog() で呼び出したフォームは、そのフォーム内でMe.Close() しても、プロセスは残り、たとえば、...続きを読む

Aベストアンサー

Me.Close()
Me.Dispose()
は根本的に違うものです。

formについて、Close()メソッドはフォームの表示を終了させるメソッドです。

ほかのクラスも同様。すべてのDispose()メソッドについて、これはインスタンスの破棄を明示的に行うものです。

>再利用できる、できないの違い

Dispose()はインスタンスが破棄されるため、再びコンストラクタを用いて、インスタンスを生成しないいけません。

一方Close()はインスタンスが残っているので、それを利用することができます。

>1. ところが、アプリケーション設定で、「最後のフォームを閉じるとき」にアプリケーションがシャットダウンする設定になってるのに、シャットダウンしてくれないことが起こりました。調べてみると、Me.Dispose() が原因。
Me.Close() に変えるとうまくいきました。

通常はどちらでもうまくいきます。

>2. ShowDialogで呼び出したフォームは、Me.Dispose()、スタートアップフォームは、Me.Close()、Showで呼び出したフォームは、どちらでも、破棄できる

ShowDialogの場合は、メソッド内部で、ハンドルが破棄されているため、Close()メソッドの際にDispose()メソッドが呼び出されます。

>3. 呼び出し方ではなく、別の要因が存在する

そう思います。

>4. 併記する必要がある場合がある

インスタンスを明示的に破棄したほうがよい場合は多く存在します。
Disposeが使えるメンバはIDisposableをインターフェースとして持っているメンバです。
これらのメンバは、外部とのやり取りを行うものが多くあります。
たとえばSQLClientに含まれるようなメンバです。

外部とのコネクションを確実に破棄を保障してほしいなどという場合がありますよね、このようなときに使用します。

Using構文を使用するのとまったく同じ理由になります。
正確にはUsing構文を使用できるメンバには条件があります、IDisposableをインターフェースとして持っているメンバに限るというものです。

ほかにもガーベージコレクタによるファイナライズを伴うかどうかという違いがあります。
Disposeの場合はファイナライズが同時に行われるため、使用していたメモリ空間を開放することができます。

上記のような理由により、
Me.Close()
Me.Dispose()
は両方書いたほうがよいと思います。

蛇足ですが、
Me.Dispose()
Me.Close()
はエラーになります。
Me.Dispose()により、Me本体(インスタンス)は削除されてしまいます。
存在しないMeに対してCloseメソッドを要求することはできないためです。

Me.Close()
Me.Dispose()
は根本的に違うものです。

formについて、Close()メソッドはフォームの表示を終了させるメソッドです。

ほかのクラスも同様。すべてのDispose()メソッドについて、これはインスタンスの破棄を明示的に行うものです。

>再利用できる、できないの違い

Dispose()はインスタンスが破棄されるため、再びコンストラクタを用いて、インスタンスを生成しないいけません。

一方Close()はインスタンスが残っているので、それを利用することができます。

>1. ところが、アプリ...続きを読む


人気Q&Aランキング