前のログ | 次のログ |
No.4850 Re:ラベルのキャプションの文字列を中央に表示したい 投稿者:ゆう(U) [02/5/24(金)22:16分]
左右での中央表示はプロパティで可能ですが、
上下での中央表示はプロパティでは出来ません。
文字の高さと表示したい上下の範囲から、計算で
表示位置を求めることになります。
境界線を使用されている場合は境界線用のラベルと
文字列表示用のラベルを分けると良いかも・・・
No.4849 Re:データグリッドについて 投稿者:ゆう(U) [02/5/24(金)22:11分]
「StdDataFormat オブジェクト」や
「データグリッド コントロール」の
プロパティページからYesNo型などの
True・False・Null時それぞれの表示
内容を設定できるようになります。
No.4848 Re: データグリッドについて 投稿者:とろ [02/5/24(金)18:35分]
DataGrid を使ったことがないので分かりませんが?
> としていますが、データグリッドの1行目が-1だった場合、"-有"と表示され、
Datagrid.Columns("税").dataformat="有"
ではなく( Column に Value というプロパティがあると思いますので、)
Datagrid.Columns("税").Value = "有"
っていう感じだと思いますが。
> 2行目からもすべて"有"と表示され、"無"は表示されません。
MoveNext はしていますか?
No.4847 RE:データグリッドについて 投稿者:浪速のリーマン [02/5/24(金)18:22分]
-1かどうかで判断してみてはどうですか?
No.4846 データグリッドについて 投稿者:koshi [02/5/24(金)18:13分]
datagridにAccessブール型のデータを表示させようとすると、"-1"、"0"と表示されてしまいます。
これを"-1"なら"有"、"0"なら"無"と表示したいのですがどうすればできるのでしょうか。
現在、Set rs= New Recordset
rs.Open "select 〜"
if rs!税 = true then
Datagrid.Columns("税").dataformat="有"
else
Datagrid.Columns("税").dataformat="無"
end if
としていますが、データグリッドの1行目が-1だった場合、"-有"と表示され、2行目からもすべて
"有"と表示され、"無"は表示されません。
No.4845 ラベルのキャプションの文字列を中央に表示したい 投稿者:浪速のリーマン [02/5/24(金)18:06分]
ラベルのキャプションに文字列を送るとどうしても一番上の方に文字が寄ってしまうのですが、
ちょうどラベルの真中の高さに文字を表示することは出来ないのでしょうか?
No.4844 re:データレポートでの質問 投稿者:A221 [02/5/24(金)17:44分]
コネクションオブジェクトにコネクションストリングを与えてやれば
良いと思います。
'Connection1 → MSDE上で接続しているコネクションの名前
Connection1.ConnectionString = "Provider=****;Password=****; _
Persist Security Info=True;User ID=****;Initial Catalog=*****;Data Source=*****"
No.4843 データレポートでの質問 投稿者:NIRIC [02/5/24(金)14:52分]
現在データレポートで帳票を作成しているものです。
データレポートで通常はDataEnvironmentのプロパティ画面からDBなどの
設定をするのですが、この部分を
”Private Sub DataEnvironment_Initialize()”のソース上でサーバーや
DBのセットをしたいのです。
VBのプロパティ上では設定した設定文が
”Connection Source”
に入っているのですが…。
どなたか知っている方がいましたら教えてください。よろしくお願いします。
No.4842 VB.NETのWEBアプリ 投稿者:MASAHIKO [02/5/24(金)13:53分]
VB.NETのWEBアプリに挑戦しているのですが、
フォーム間でデータを共有する方法がわかりません。
例えば、ユーザーID入力フォームで入力したIDを別の入力フォームで
参照するには、どのようにすればよろしいのでしょうか?
以前のASPですと、次に表示する<FORM >の中に、
INPUT TYPE=HIDDENの項目にセットし、
REQUEST.FORMでOKでしたが、.NETの画面設計は画面ごとに.
ASPXを作るので、ユーザーID入力フォームから、データ入力フォームの中に、
HIDDENを追加することができないし??、MODULE.
VBにパブリックのエリアを利用すれば、複数台のPCからのアクセスされると、
そのエリアは更新されてしまうので、この方法もだめです。
どうにか、フォーム間でデータを回せる方法はないのでしょうか?
どなたか、教えてください!
No.4841 RE:MSChartで2次元XYグラフのX・Yスケールの設定 投稿者:花ちゃん [02/5/24(金)13:38分]
もう解決されているかも知れませんが
MSChart1.Plot.UniformAxis = True
このような方法もあります。(お気に召さないかも知れませんが)
No.4840 2つのリストビューを連動させる。 投稿者:まる [02/5/24(金)12:59分]
すみません。教えてください。
リストビューが2つあり、片方のソートを変更したときにそれと同じ順番で
もう片方のリストビューも並べ替えたいのですが、どうすればいいのでしょうか?
No.4839 カレンダーコントロールについて 投稿者:TAKADA [02/5/24(金)11:10分]
現在VB6.0SP5で開発しております。
そこで質問なのですが、カレンダーコントロールを使用して、
日曜日は赤丸または色をかえるなどの処理をしたいのですが、
プロパティをみてもみつかりません。
なにかよい方法がありましたら、宜しくお願いします。
カレンダーコントロールでなければいけないと言うわけでは
ありません。なにかほかによい策があればアドバイスの方宜しく
おねがいします。
No.4838 TABキー 投稿者:ゆずマン [02/5/23(木)23:57分]
ゆう(U)さん。ありがとうございます
enableを設定することでフォーカスが移動しなくなるんですね
図まで書いていただいて・・・
大変わかりやすい説明ほんとにありがとうございました
試してみます!!
No.4837 Re:TABキー 投稿者:ゆう(U) [02/5/23(木)22:22分]
┌─┐─┐
│A│B│
├─┴─┴─────┐
│ │
│ │
│ │
│ │
│ │
│ │
└─────────┘
┌fraTab(0) ──┐
│┌┬┬┬┬┬┐│
│├┼┼┼┼┼┤│
│├┼┼┼┼┼┤│
│└┴┴┴┴┴┘│
└───────┘
┌fraTab(1) ──┐
│┌─────┐│
│└─────┘│
│┌─────┐│
│└─────┘│
│○opt1 ●opt2 │
│□2 □3 □4 │
└───────┘
┌─────────┐
│Command1 │
└─────────┘
フォーム上には上記の様にTabStripとFrame2個
コマンドボタンが全て表示できるように配置して
下さい。
TabIndexはコードでは一切変更はしません。
※デザイン時にTabIndexを設定します
TabStrip→fraTab(0)→MSFlexGrid1→
fraTab(1)→Text1→Text2→Option1→
Option2→Command2→Command3→
Command4→Command1
この状態でfraTab(0)がEnabeld=Falseなら
MSFlexGrid1にフォーカスが移動することは
ありません、同様にfraTab(1)もFalse状態では
Text1からCommand4のコントロールには
フォーカスが移動しません。
これを利用すると、Tab-Aが指定されている
場合fraTab(0)のEnabledをTrueに、fraTab(1)
のEnabledをFalseに・・・Tab-Bが指定されて
いる場合は逆にfraTab(0)をFalse、fraTab(1)
をTrueにします。
全ての動作確認が済んだらTabStripの上に
fraTab(0)(1)を重ねてCommand1の位置等を
調整します、fraTabのEnabledの変更に動機
させてZOrderの変更も行えば完成です。
No.4836 Re:配列の削除について 投稿者:ゆう(U) [02/5/23(木)21:36分]
> 配列全体の消去ならば、Erase を使用します。
> 配列の値1つなら、ちまちまと代入しています。
ちまちまの代わりにAPIで行うことも出来ます
※データの型によりますけど
RtlMoveMemoryで・・・
No.4835 Re:フォルダー内のファイル名を拡張子抜きで列挙 投稿者:ゆう(U) [02/5/23(木)21:32分]
拡張子の判定は「InStrRev 関数」の方が
いいと思います・・・
ちなみに拡張子無しのファイルも存在します。
No.4834 re:配列の削除について 投稿者:A221 [02/5/23(木)20:52分]
配列全体の消去ならば、Erase を使用します。
配列の値1つなら、ちまちまと代入しています。
No.4833 re:rs.Update ができない 投稿者:A221 [02/5/23(木)20:48分]
エラーの出る直前にブレークポイントを仕掛けてみてください。
で、レコードセットのカーソルタイプとロックタイプを
確認してみてください。
(定数なので数値で帰ってくるかもしれませんが)
試しに以下のようにしてみてください。
With rs
.close
.CursorType = adOpenKeyset
.LockType = adLockOptimistic
.open
end with
このコードは私ががSQLServerでrs.UPDATEを使用した際のコードです。
rsを閉じなければ変更できない上にレコードカウントが0に
(カーソルタイプによる?)なったりするので、
できればストアードプロシージャに切り替えたほうがよいでしょう。
No.4832 re:ユーザー定義の変数の宣言 投稿者:A221 [02/5/23(木)20:35分]
>標準モジュール内でパブリック変数を用意し
オブジェクトモジュールではtype宣言できませんが、
標準モジュールにならPublic Typeで置けますよ?
No.4831 配列の削除について 投稿者:ゆずマン [02/5/23(木)17:38分]
超初歩的な質問ですいません
配列を使ってデータを編集しているのですが
配列のデータを削除ってのはどうしたらよいのでしょうか?
配列番号のデータを削除すると
その配列は残ったままなのですか?
たとえばA(10)という配列があって
そこの3番目の配列を削除したいと思ったときはどうしたらよいのですか?
よろしくお願いします。
No.4830 rs.Update ができない 投稿者:かなん [02/5/23(木)16:04分]
こんにちわ
rs.Update ができなくて、困っています。
環境は、VB5.0+SP3、SQL Serverです。
***code***start***
Public Function fncDBConnect
Dim WrkODBC As Workspace
Dim DbsSQL As Database
Dim rs As Recordset
Dim strConnect As String
Dim strSql As String
Dim Const strUserName = "UserName"
Dim Const strPassWord = "PassWord"
fncDBConnect = True
On Error GoTo ErrHandler
strConnect = "ODBC; UID=" & strUserName & ";PWD=" & Trim(strPassWord)
Set WrkODBC = CreateWorkspace("ODBC", "strUserName", "strPassWord", dbUseODBC)
Set DbsSQL = WrkODBC.OpenDatabase(CstDBName, False, False, strConnect)
strSql = "SELECT * FROM TABLE;"
Set rs = DbsSQL.OpenRecordset(strSql, dbOpenDynaset)
'この後、rs.Editがある
Exit Function
ErrHandler:
fncDBConnect = False
End Function
***code***end***
rs.Editで、
「実行時エラー'3027'
データベースまたはオブジェクトは読み取り専用であるため、更新できません。」
というメッセージがでます。
rs.Updateできないのは、どこかの設定で読み取り専用にしてるのでしょうか。
どなたか教えてください。
No.4829 ユーザー定義の変数の宣言 投稿者:みゆ [02/5/23(木)15:39分]
標準モジュールで定義したユーザー定義型(Struct_Module)を
現在定義してます.
FormAでこのユーザー定義を
FormA内のどこでも使用できるように
FormAのモジュール内で
Dim m_mod As Struct_Module
と定義してます。
ここで、FormBを用意して、FormBから
FormAのこの変数を使用したいと思ってます。
だから
public m_mod As Struct_Module
に変更したのですが、
”定数、固定長文字列、・・ユーザー定義型・・・は、オブジェクト
モジュールのパブリックメンバーとしては、使用できません”
というエラーがでました。
なぜ、このようなことをしたいかというと、
FormBでこのデータを編集
FormAでデータを実際に使う
ということをしたく、FormBで編集したら、
FormAに渡し、編集をしない、もしくは、編集をCancelした場合
FormAには、渡さない。
という動作を行ないたいからです。
標準モジュール内でパブリック変数を用意し
FormAは、標準モジュール内のデータを使用し
FormBは、FormB内用の変数を用意して、
変更があれば、標準モジュール内のデータに
渡すという方法しか、ないのでしょうか?
No.4828 Re: フォルダー内のファイル名を拡張子抜きで列挙 投稿者:みゆ [02/5/23(木)12:48分]
>そんなことは考えず、単純に
>ListBox.AddItem Left(objFile.Name, Instr(1, objFile.Name, ".") -1)
>で良いのでは?
ありがとうございます。
やはり単純に文字列操作をして取得するほうが
わかりやすいですかね(w
No.4827 Re: フォルダー内のファイル名を拡張子抜きで列挙 投稿者:とろ [02/5/23(木)12:09分]
> ListBox.AddItem objFile.name'拡張子ありファイル名
もしかすると、 Scripting.FileSystemObject クラスに
専用のメソッドかなにかがあるかもしれませんが、
そんなことは考えず、単純に
ListBox.AddItem Left(objFile.Name, Instr(1, objFile.Name, ".") -1)
で良いのでは?
No.4826 フォルダー内のファイル名を拡張子抜きで列挙 投稿者:みゆ [02/5/23(木)12:01分]
いつもここでは、お世話になってます。
今度は、フォルダー内のファイル名をコンボボックス等に
列挙することなんですが、ファイル名を拡張子抜きで列挙したいと思ってます。
いい方法はないでしょうか?
現在以下のようなコードを用いてます。
Public Function FileListing(ByRef ListBox As Object, ByVal Forder As String) As Boolean
Dim colFilesystem As Object
Dim objFolder As Object
Dim colFiles As Object
Dim objFile As Object
Set colFilesystem = CreateObject("Scripting.FileSystemObject")
Set objFolder = colFilesystem.GetFolder(Forder)
Set colFiles = objFolder.Files
' Windowsディレクトリのファイル名をリストアップ
For Each objFile In colFiles
ListBox.AddItem objFile.name'拡張子ありファイル名
Next
' オブジェクトを解放
Set colFilesystem = Nothing
Set objFolder = Nothing
Set colFiles = Nothing
Set objFile = Nothing
End Function
No.4825 SPREAD初心者 投稿者:RINA [02/5/23(木)11:32分]
初めまして。
SQLの結果をSPREADに貼り付けたいのですが、どこかに初心者でもわかりやすいサンプルプログラムは
ないでしょうか?
もしあったらURLを教えて下さい。
No.4824 Re.Re.漢数字について 投稿者:匿名 [02/5/23(木)10:52分]
ありがとうございます!!!
早速、試してみます。
No.4823 RE:漢数字についてです 投稿者:花ちゃん [02/5/23(木)10:45分]
左のメニューの逆引きヘルプを見て下さい。
No.4822 漢数字についてです。 投稿者:匿名 [02/5/23(木)10:31分]
はじめまして。
早速、質問なのですが、宛名印刷をVb-Reportからしたいです。
住所の番地を漢字に変換したいのですが
(10番地→十番地)
やり方がわかりません。
どなたか教えて下さい〜
環境:Windows XP VB6 SP5
No.4821 re:リストの更新について 投稿者:A221 [02/5/22(水)17:21分]
リストボックスであれば下記のとおりです。
Listbox1.List(index) ="更新したい文字列"
'Index=更新したい項目のListindex
No.4820 re:AddItem 投稿者:A221 [02/5/22(水)16:47分]
>更新ボタンで更新という事にしています
Dim Tcol as Collection
Dim Sqltmp as String
With Tcol
.AddItem Text1
.AddItem Text2
End With
SqlTmp="update dbo_TBLUSER "
Private Sub Command1_Click()
With MSFlexGrid1
For i=0 to .Col-1
.TextMatrix(.Row,i) = TCol(i).Text
sqltmp=sqltmp + .TextMatrix(0,i) + "='"+Tcol(i)+"'"
if i<>col-1 then sqltmp=sqltmp+" and "
Next i
End With
sqltmp=sqltmp+"Where 〜"
End Sub
こんな感じでしょうか。
>あと削除なんですが
>RemoveItemをつかって削除しようと思うのですが
>MSFlexGrid.RemoveItem "データ",MSFlexGrid.Row
>とかくとエラーになってしまいます・・・
MSFlexGrid.RemoveItem .Row
で良いはずです。削除するRow名はいらないです。
No.4819 Re: 複数のデータベースに情報をいれたい! 投稿者:とろ [02/5/22(水)16:45分]
> 現在、1つのプロジェクトに2つのフォームがあります。
> A.mdbにはAのフォームの情報が入り、B.mdbにはBのフォームの情報が入ります。
> Aのフォームの情報がA.mdbに入るときに、
> その一部の情報がB.mdbにも入るようにしたいのです。
なにができないのか分からないのですが。
Aのフォームの情報が A.mdb に入れることはできているのですよね。
同様に
Aのフォームの情報を B.mdb に入れるようにするだけだと思いますが。
ボタンを押した時に、入れるならば、下のような感じ。
'* フォームモジュール A のボタンを押した時の処理
Private Sub Command1_Click()
Call insert '* A.mdb にデータを追加
Call insert2 '* B.mdb にデータを追加
End Sub
(insert2 プロシージャは insert プロシージャの中で、
データベースのパスを B.mdb にしただけのもの。)
No.4818 RE:複数のデータベースに情報をいれたい! 投稿者:匿名 [02/5/22(水)16:25分]
アドバイスありがとうございます。
現在、1つのプロジェクトに2つのフォームがあります。
A.mdbにはAのフォームの情報が入り、B.mdbにはBのフォームの情報が入ります。
Aのフォームの情報がA.mdbに入るときに、
その一部の情報がB.mdbにも入るようにしたいのです。
どのようにしたらできるのでしょうか。
説明が下手で大変申し訳ないのですが、
アドバイスをお願いします。
No.4817 RE:教えてください(複数のメールアドレスを取得) 投稿者:花ちゃん [02/5/22(水)15:57分]
>1回に同じ内容のメールを、仮に100人の人に送ろうとした場合
送るあて先の100人分のアドレスを ; でつないで集計し、
そのアドレスを BCC で送付するのではだめなのですか?
No.4816 Re: リストボックスの指定位置に、項目挿入 投稿者:みゆ [02/5/22(水)14:58分]
ありがとうございます。
よくHelpを見ていなかったです。
No.4815 AddItem 投稿者:ゆずマン [02/5/22(水)14:08分]
MSFlexGridにレコードを追加、更新、削除しようと考えています。
追加は
MSFlexGrid.AddItem "データ",MSFlexGrid.Rows
で追加できるのですが、
更新、削除の仕方がわかりません
更新は
グリッドは下のような感じでセルをクリックするとテキストにそのデータが表示され
更新ボタンで更新という事にしています
Private Sub MSFlexGrid1_Click()
'グリッドのデータをテキストに表示
With MSFlexGrid1
Text1.Text = .TextArray(.Cols * .Row)
Text2.Text = .TextArray(.Cols * .Row + 1)
strMorF = .TextArray(.Cols * .Row + 2)
End With
End Sub
更新はテキストのデータを
MSFlexGrid.AddItem "データ",MSFlexGrid.Row
で指定したのですが、これは新規にレコードを挿入する事になってしまいました
現在選択している行を更新するにはどうしたらよいのですか?
あと削除なんですが
RemoveItemをつかって削除しようと思うのですが
MSFlexGrid.RemoveItem "データ",MSFlexGrid.Row
とかくとエラーになってしまいます・・・
多分、行を指定する部分がおかしいとは思いますが・・・
どのように書き換えていいかわかりません
どうやってクリックして反転表示されている行を
更新、削除したらよいのでしょうか?
よろしくお願いします。
No.4814 リストの更新について 投稿者:アズーリ [02/5/22(水)14:04分]
リストの更新の仕方がわかりません。
リストの項目を修正して、それをリストに反映させる方法
を教えて下さい。
No.4813 エディットボックスへの文字列の挿入 投稿者:ちきちき [02/5/22(水)14:02分]
はじめまして
APIを使いエディットボックスを作ってそこに、文字を表示したいのですが、
文字の挿入方法がわかりません。
Ret2 = CreateWindowEx(0, "EDIT", "", WS_CHILD Or WS_VISIBLE, 5, 10, 150, 30, hwnd, 0, 0, 0)
作ったエディットボックスの中に文字を入れる方法を教えてください。
よろしくお願い致します。
No.4812 すいませんでした。 投稿者:umi。 [02/5/22(水)13:42分]
花ちゃんさん、とろさん。
返信ありがとうございました。
やってみましたが、まだダメなんですよね。。
もう1度やってみますが・・・。
No.4811 RE:教えてください(複数のメールアドレスを取得) 投稿者:花ちゃん [02/5/22(水)13:24分]
リストボックスにメールアドレスが表示されているのなら
Private Sub Command1_Click()
Dim i As Long
Dim Address As String
With List1
For i = 0 To .ListCount - 1
If .Selected(i) Then
Address = Address & List1.List(i) & ";"
End If
Next i
Debug.Print Address
End With
End Sub
これで選択した分のアドレスが取得できますが
No.4810 Re: リストボックスの指定位置に、項目挿入 投稿者:とろ [02/5/22(水)13:16分]
> リストボックスで、指定している位置に
> 項目を挿入する方法は、
AddItem の第二引数を指定して下さい。
No.4809 リストボックスの指定位置に、項目挿入 投稿者:みゆ [02/5/22(水)13:14分]
件名のとおり
リストボックスで、指定している位置に
項目を挿入する方法は、
やはり、地道に、ずらしていくほかないのでしょうか?
No.4808 Re: 教えてください。 投稿者:とろ [02/5/22(水)11:50分]
> とした場合、1回に同じ内容のメールを、仮に100人の人に送ろうとした場合、最後に
> 選択されたアドレスの人に100件が送られてしまいます。
メール送信のところのコードがないので、
「同じアドレスに100回送っているのでは?」としか言えません。
> データを読んだ段階で、読んだデータを上書きしていくのではなく、溜め込んでやりたいのですが
> いい方法がありましたら、教えてください。
動的配列を使えば良いのでは?
No.4807 教えてください。 投稿者:umi。 [02/5/22(水)11:11分]
Private Sub
Dim i As Long
Debug.Print
With List1
For i = 0 To .ListCount - 1
If .Selected(i) Then
Debug.Print i
End If
Next i
End With
End Sub
******************************************************************
とした場合、1回に同じ内容のメールを、仮に100人の人に送ろうとした場合、最後に
選択されたアドレスの人に100件が送られてしまいます。
データを読んだ段階で、読んだデータを上書きしていくのではなく、溜め込んでやりたいのですが
いい方法がありましたら、教えてください。
No.4806 Re:TABキー 投稿者:ゆずマン [02/5/22(水)10:19分]
ゆう(U)サン。ありがとうございます。
コマンドボタン1だけコンテナーになってない場合はどうしたらよいのでしょうか。
タブストリップの1つ目にはコントロール配列フレームのコンテナーにMSグリッドのみ
タブストリップの2つ目にはコントロール配列フレームのコンテナーにテキスト×2、
コントロール配列ではないフレーム×1、その中にオプションボタン×2
コマンドボタン×3を入れています
コマンドボタン1はタブストリップにもフレームのコンテナーにも関係なく
ただフォームに貼り付けています(終了ボタンとして)
いまの動作が怪しい部分というのが、タブストリップの1つ目を表示させたときに
Tabキーを押すと
タブ → グリッド → コマンドボタン1 とはすんなり動くのですが
コマンドボタン1からまたタブに行くまでにTabキーを何回も押さなければいけない状態です
タブの2つ目の動きは自分の考えているとおりに動いているのですが・・・
どのようなことが考えられますか?
Private Sub TabStrip1_Click()
'タブキーの移動の順序を示します
If TabStrip1.SelectedItem.Index - 1 = 0 Then
fraTab(0).ZOrder 0
TabStrip1.TabIndex = 0
fraTab(0).TabIndex = 1
MSFlexGrid1.TabIndex = 2
Command1.TabIndex = 3
Else
fraTab(1).ZOrder 0
TabStrip1.TabIndex = 0
fraTab(1).TabIndex = 1
Text1.TabIndex = 2
Text2.TabIndex = 3
Option1.TabIndex = 4
Option2.TabIndex = 5
Command2.TabIndex = 6
Command3.TabIndex = 7
Command4.TabIndex = 8
Command1.TabIndex = 9
End If
End Sub
というコードになってるのですが・・・
よろしくお願いいたします。
No.4805 Re:TABキー 投稿者:ゆう(U) [02/5/21(火)18:04分]
> タブが選択されたときに、表示するフレームに対してインデックスをセットするんですね。
> でもまだ動作が変な部分はあるのですが・・・
フレームをコンテナーとして扱っているなら
フレーム1にはMSFlexGridを
フレーム2にはボタン2〜4を
コンテナー内に配置する。
フォームには・・・
タブスプリット、フレーム1・2とコマンドボタン1
が置かれている状態にする。
プロパティウィンドウでTabIndexにフォーカスをあてて
コマンドボタン1からフォーカスを移動したい逆順に
0を入力していく。
Command1 - 0
Command4 - 0
Command3 - 0
:
TabSplit1 - 0
とするとTabIndexが簡単に順番に設定できます。
選ばれているタブによって、フレーム1とフレーム2の
EnabledをTrue/Falseを切りかえることによって、
フォーカスが移動できなくするだけで、動的にTabIndexを
変更せずとも目的の動作が出来ます。
フレームをコンテナーとして使用していないのであれば、
別途コンテナーを用意して上記の手法を試みてください。
No.4804 RE :TABキー(自己レス) 投稿者:ゆずマン [02/5/21(火)16:05分]
自己レスです。
解決しました。
タブが選択されたときに、表示するフレームに対してインデックスをセットするんですね。
でもまだ動作が変な部分はあるのですが・・・
いろいろ改良してみます。
ありがとうございました。
No.4803 RE : TABキー 投稿者:ゆずマン [02/5/21(火)15:11分]
現在作っているアプリには
TabStripでつくった2つのコントロール配列のものがあります
1つ目のタブを選択したときにはコントロールは
タブ、フレーム(0)、MSグリッド、コマンドボタン1の順に移動させ、
2つ目のタブを選択したときは
タブ、フレーム(1)、テキスト1、テキスト2、オプションボタン、コマンド2、
コマンド3、コマンド4
そしてさいごにコマンド1としたいです。
コマンド1は終了ボタンなのでどちらのタブを選択しても一番最後に移動するようにしたいのです。
****************************************************************************************
Private Sub TabStrip1_Click()
'タブが選択されたときに表示するフレーム
fraTab(TabStrip1.SelectedItem.Index - 1).ZOrder 0
'タブキーの移動の順序を示します
If TabStrip1.SelectedItem.Index - 1 = 0 Then
TabStrip1.TabIndex = 0
fraTab(0).TabIndex = 1
MSFlexGrid1.TabIndex = 2
Command1.TabIndex = 3
Else
TabStrip1.TabIndex = 0
fraTab(1).TabIndex = 1
Text1.Text = 2
Text2.Text = 3
Option1.TabIndex = 4
Option2.TabIndex = 5
Command2.TabIndex = 6
Command3.TabIndex = 7
Command4.TabIndex = 8
Command1.TabIndex = 9
End If
End Sub
************************************************************************************
先ほどゆう(U)さんのアドバイスを受けてTabIndexを使ってみました。
このようなコードを書いてみましたが、ダメでした。
順序的にはこのようにしたいのですがどのようにしたらよいですか?
よろしくお願いします。
No.4802 Re:TABキー 投稿者:ゆう(U) [02/5/21(火)14:18分]
ヘルプ
「TabIndex プロパティ」
「TabStop プロパティ」
をご覧下さい。
No.4801 TABキー 投稿者:ゆずマン [02/5/21(火)14:11分]
TabStripについては理解できました。
ありがとうございました。
今度はTABキーについての質問なんですが、フォームに貼り付けたコントロールを
TABキーで移動させるのですがこの時自分の移動させたい順番でフォーカスを移動させるには
どうしたらよいのでしょうか?
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyTab Then
KeyAscii = 0
Text2.SetFocus
End If
End Sub
のように1つづつSetFocusを使っていかなければいけないのでしょうか?
わかる方がいましたらよろしくお願いいたします。
前のログ | 次のログ |
VBレスキュー(花ちゃん)
Visual
Basic6.0 VB6.0