• ベストアンサー

C# ReadOnlyのTextBoxで

nak777rの回答

  • nak777r
  • ベストアンサー率36% (49/136)
回答No.5

>今でもまだ、APIを使用しなければ駄目でしょうか。 そもそも、「今でもまだ」とは、どういう意味でしょう Readonly属性は、入力コントロールに対する変更を禁止にするだけの属性です そして、入力コントロールなのですからキャレットが存在して当たり前です キャレットの主な役割は、移動、変更、コピー&ペーストがあります このうち、変更が禁止になっただけなので、移動とコピーのみが出来ますよ という属性です 「今でもまだ」、まるでこの仕様が不具合で、まだ直っていないとでも 言いたそうですが、もともとがそういう仕様なのですから 今でもまだ、どころか、この先も変わる事は無いです

tatapatank
質問者

補足

回答、恐れ入ります。 決して不具合だとは思っていません。 要は、機能的にあろうとなかろうと、『キャレットを非表示にする』という メソッドなりが追加されていてもおかしくないのではと思っただけです。 皆様の回答を見ていると、必要以上にこだわりのある 返答のように思えますが、私としては見えなくなってさえくれればいいわけで 当然そのようなメソッド、機能していても非表示にするとか、 キャレットと背景色を同じにするとか。 なので、非表示と無効というのを取り違えて回答するのはやめていただきたく存じます。

関連するQ&A

  • DataGridのReadOnlyについて

    こんにちは いつもお世話になっております。 VB.NET(2003)で、DataGridにデータを表示して、編集-更新する処理を行っています。 表示ボタンを押したら表示され、更新ボタンで更新される動作です。 表示方法はDataGridTextBoxColumnのReadOnly=TrueにしたものをDataTableにADDし、 これをDataGrid.DataSourceにセットして表示させています。 そして、クリアボタン押したときに dtb = New DataTable 'グリッドに表示 DataGrid.DataSource = dtb というようにDataTableを初期化してクリアしているのですが このときDataGrid上のTextBoxにカーソルがあると そのTextがクリアされず表示されたままになってしまいます。 ReadOnlyですが、一応カーソルは当たるようにしたいのです。 表示されたままになっているのは、クリアの方法がまずいのでしょうか? すみませんが、どなたか教えていただけませんでしょうか?

  • C# TextBoxをもつフォームが非アクティブ

    お世話になります。 C#にて、付箋紙の様な簡易メモ帳を作ろうとしています。 フォーム上にテキストボックスを配置し、テキストを入力後、 そのフォームが非アクティブになった時、つまり、デスクトップや 他のウインドウに切り替わった瞬間に(フレームの色が変わった時) 自動保存させたいと思うのですが、なかなかうまくいきません。 方法をお教えください。 尚、現在はLeaveイベントで取得しようとしてみましたが、 フォーム内では発生しますが、違うウインドウに切り替えただけだと 発生しません。 以上、よろしくお願いいたします。

  • JavaScriptでこれ出来ますか?

    すでに文字列が入っているテキストボックスにfocus()を行い、 "I"の形の文字キャレットを文字列の最後に移動させたいのですが、 ただ単に document.getElementById("TextField").focus() などとすると、文字列の最初に文字キャレットがいってしまいます。 どのようにしたら文字列の最後に文字キャレットを移動させられ ますでしょうか?

  • TextBoxのhWndプロパティVBAでも使えませんか?

    環境 OS:Win2000ProSP4 Excel2000および2002 Excel2000で、テキストボックスのあるフォームを作成しました。 選択したファイルを読み込んでテキストボックスに表示する機能があり それに加えて、テキストボックス中をマウスでクリックした時、その場 所のカーソルの位置(そこの行数と行内で何カラム目か、の2つ)を取得し て同じフォーム上に表示させる機能をつけました(矢印ボタンでカーソ ルが移動しても、位置情報を更新するようにしています)。ただし、 ネットで調べたカーソル位置取得方法はVBAでなくてVBのものなので、 API(SendMessage)に渡すテキストボックスのhWndプロパティはなく、 困ってしまいました。窮余の一策として、普通のテキストボックスの 代わりに、リッチテキストコントロールを使用して、その中にある hWndプロパティを渡して、上の機能を実現していました。ところが、 Excelを2002にアップグレードしたら、リッチテキストコントロール が使えないことが判明しました(MSのサイトによると、セキュリティの ため、とのこと)。 Excel2002で、2000時代につくったフォームを開くと、リッチテキスト コントロールがすっぽり抜け落ちている状態です。こうなれば、普通の テキストボックスのhWndプロパティをAPIで取得できないか、というこ とを調べているところで困っています。あるいは、2002でも使える同じ ようなコントロールがあれば助かります。 長くなりましたが、ご存知の方、アドバイスをお願いします。

  • C# テキストボックスについて

    フォームに置いたテキストボックスに フォーカスを入れると カーソルが点滅するごとに,オーバーライドした OnPaintのハンドラーにイベントが引っかかります。これは当然のことなのでしょうか? カーソルが点滅したぐらいでPaint処理をするのはわずらわしいし不都合がある場合があります。 なので,イベントが引っかからない(起きない)ようにするか,または OnPaintハンドラー内において Paintイベントが起きたのはテキストボックスであるということを知る方法はないのでしょうか。

  • メッセージボックスの表示位置について

    WindowsAPI(C言語)でメッセージボックスの表示位置を変更したいと思っています。 ダイアログボックスはSetWindowPosで変更できたのですが、メッセージボックスの表示位置が変更できずに困っています。 何か良いAPIや、実装方法などがありましたらご教授ください。 よろしくお願いします。

  • NumericUpDownでキャレット移動

    VB.NET VisualStudio2017でWindowsアプリケーションを開発しています。 お客様からの要望でテキストボックスがフォーカスが移った際には入力済の文字列を全選択し、その状態で文字列の任意の場所でマウスをクリックするとその場所にマウスカーソル(キャレット)を移動しています。 Private Sub txtTest_MouseDown(sender As Object, e As MouseEventArgs) ' マウスを押した位置にキャレットを移動する Dim charIndex As Integer = txtTest.GetCharIndexFromPosition(e.Location) txtTest.Select(charIndex, 0) End Sub 同様のことをNumericUpDownコントロールで行いたいのですが、NumericUpDownコントロールにはGetCharIndexFromPositionメソッドが存在しません。 Windows API のSendMessageも調査してみましたが、TextBox向けの事例にしかヒットしませんでした。 何か良い方法をご存知の方がいらっしゃれば、お知恵をお借りしたく存じます。 よろしくお願いいたします。

  • アクセスのTextBox内で改行できるようにしたい

    過去ログをhttp://okwave.jp/qa4812389.html 参考にしてみましたがアクセスのテキストボックスで出来ません。 ”あああ”のあとにエンターキーを押しても何も変わりません。 TextBoxのプロパティを見ても”改行”というのが見つかりません。 どうすれば改行できますか?よろしくお願いします。

  • スマホで文字入力画面を表示させたくない(html)

    input要素のテキストフィールド<input type="text">にフォーカスしたとき、スマホの文字入力画面を表示してほしくないのですが、なにか方法はありますか? 端末側で設定するのではなく、Webサイト側で制御したいのです。 input要素をreadonlyやdisabledにすれば表示されませんが、そうしてしまうとキャレットを制御できなくなってしまうため、だめでした。 キャレットは制御できるけど文字入力画面はでない。なんて方法、ご存知のかたいらっしゃいませんか?

  • EXCEL VBA カーソル移動方法?

    エクセル2000でユーザーフォームを作成し テキストボックス1~6まで作成し テキストボックス1~3を1段目、4~6を二段目で配置した場合 エンターキーでケキストボックス1⇒2・・・6のカーソル移動は わかるのですが、テキストボックス2から下に配置してある テキストボックス5に矢印キー↓でカーソルを動かすようにはどのように すればよろしいのでしょうか? 又、おなじようなことなのですがテキストボックス2から 矢印←でテキストボックス1にカーソルを移動させるのも 同じでしょうか? 宜しくお願いいたします。