C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: フォーカスについて


(過去ログ 27 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■12748 / inTopicNo.1)  フォーカスについて
  
□投稿者/ がぶすけ (1回)-(2008/01/16(Wed) 18:39:29)

分類:[.NET 全般] 

VB2005
こんにちは、いつも参考にさせて頂いています
うまく内容を質問できないかもしれませんが、お知恵を借りたいと思います
EXCEL のVBAで

acivecell.value = ××

 といったマクロを登録したボタンがあります

これを押下すると、アクティブ状態ににあるセルに××を書き込みますが

VB上でこれと同じように

Form1の上にいくつかテキストボックスがあり、マウスでフォーカスしてから

ボタンを押下すると××を書き込む仕様にしたいと思います

変な説明で申し訳ありませんが、教えて下さい

引用返信 編集キー/
■12750 / inTopicNo.2)  Re[1]: フォーカスについて
□投稿者/ PATIO (2回)-(2008/01/16(Wed) 19:28:35)
No12748 (がぶすけ さん) に返信
> VB上でこれと同じように
>
> Form1の上にいくつかテキストボックスがあり、マウスでフォーカスしてから
>
> ボタンを押下すると××を書き込む仕様にしたいと思います

ボタンを押してしまうとフォーカスがボタンに移ってしまうのでそこをどう処理するかですね。
ボタンが押される直前にフォーカスを持っていたテキストボックスがどれかと言う事が
わかれば、後はそう難しく無いのではないかと思います。
VBは守備範囲外なので具体的なコードは提示できないです。
すみません。



引用返信 編集キー/
■12752 / inTopicNo.3)  Re[1]: フォーカスについて
□投稿者/ tama (1回)-(2008/01/16(Wed) 22:32:50)
No12748 (がぶすけ さん) に返信
はじめまして。tamaと申します。

> Form1の上にいくつかテキストボックスがあり、マウスでフォーカスしてから
> 
> ボタンを押下すると××を書き込む仕様にしたいと思います

いろいろな方法があるでしょうし、TextBoxをどれくらい配置するかにもよると思いますが、簡単なのは下記のような考え方かなと…。
※既に試した方法ならスルーして構いません

Public Class Form1
    '今回はForm1側のコードをあまり長くしたくなかったので、先にデザイン画面で全てのTextBoxのTagを設定しておきました。
    '但しデザイン画面からのTagは全てテキストとして扱われるので、数値等にしたい場合はLoadイベント等他の機会に設定します。
    'Tagプロパティについての詳細→http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.control.tag(VS.80).aspx

    Dim currentTag As String

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        'TextBoxのEnterイベントで切り替わったcurrentTagの内容で直前のTextBoxを判定します。
        Select Case currentTag
            Case "1"
                '便宜上、どのTagの値が入ってたかわかる用敢えて番号をつけています。
                Me.TextBox1.Text = "test"
            Case "2"
                Me.TextBox2.Text = "test2"
            Case "3"
                Me.TextBox3.Text = "test3"
            Case "4"
                Me.TextBox4.Text = "test4"
            Case Else
                '念のための処理です。
                Me.TextBox1.Text = String.Empty
                Me.TextBox2.Text = String.Empty
                Me.TextBox3.Text = String.Empty
                Me.TextBox4.Text = String.Empty
        End Select

    End Sub

    '各TextBoxにフォーカスが当たる(厳密にはTextBoxがアクティブになる)ごとに
    'currentTagの内容を変化させます。
    Private Sub TextBox_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.Enter, TextBox2.Enter, TextBox3.Enter, TextBox4.Enter
        currentTag = CType(sender, TextBox).Tag
    End Sub

End Class


「ボタンを押下すると××を書き込む仕様」とのことから、TextBoxに入るのは固定値と判断させて頂きました。
もし、そうでないとしたら話は変わってくるでしょう。

引用返信 編集キー/
■12762 / inTopicNo.4)  Re[1]: フォーカスについて
□投稿者/ 魔界の仮面弁士 (571回)-(2008/01/17(Thu) 12:27:42)
No12748 (がぶすけ さん) に返信
> Form1の上にいくつかテキストボックスがあり、マウスでフォーカスしてから
> ボタンを押下すると××を書き込む仕様にしたいと思います

『アクティブにならないボタン』を用意してみては如何でしょう。

http://www.vb-user.net/junk/replySamples/2008.01.17.12.25/12748.zip
引用返信 編集キー/
■12796 / inTopicNo.5)  Re[2]: フォーカスについて
□投稿者/ がぶすけ (2回)-(2008/01/17(Thu) 17:40:11)
PATIOさん、tamaさん、魔界の仮面弁士さんありがとうございます

参考にさせて頂きつつ、自分なりの解答を見つけようと思います
みなさんのお答を、またひとつひとつ勉強しながらの作業なので
まだまだ先は長そうです。

ひとまずここでCloseさせて頂きます

本当にありがとうございました


解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -