OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

[×]ボタン.Enabled = False は可能?

  • 困ってます
  • 質問No.181340
  • 閲覧数128
  • ありがとう数5
  • 気になる数0
  • 回答数4
  • コメント数0

お礼率 72% (173/238)

済みません,質問が二つあります。

1.メインフォームから,BorderStyle = 1 のダイアログフォームを Modeless で開くのですが,このフォームを右上の[×]ボタンで閉じさせたくありません。[×]ボタンをクリックしても凹まないようにし(Disabled にし),さらに表示も淡色にする方法があれば,教えていただきたく存じます。

2.テキストボックスに入力された文字列が,ファイル名として有効かどうかを簡単に判定する方法はありますか? つまり,ファイル名に「\/:,…」などが使われていたら NG,しかしパス名で使われている分には OK といった判定が簡単にできるのでしょうか?

どうかよろしくお願いいたします。
通報する
  • 回答数4
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.4
レベル14

ベストアンサー率 51% (1179/2272)

こんにちはmaruru01です。
1.について
単に[×]で閉じないようにするなら、FormのUnLoadイベントでCancelをTrueにしてやればよいと思います。
2.について
サンプルを作ってみました。ついでにファイル名が存在するかどうかのチェックもつけました。
No.3の方が言っているように、Open For InputまたはOutputでファイルを開いてみて、エラー値で判断します。
pathNameにファイル名(フルパス)を入れて、今回の質問では、-1が返ったら、ファイル名としては無効(不正なファイル名)ということになります。
参考になれば幸いです。
では。


'ファイルの存在チェック及び、不正ファイル名チェック
Public Function NGfileName(ByVal pathName As String) As Integer

  Dim Num As Integer

  NGfileName = 0
  Err.Number = 0

  On Error Resume Next

  'inputモードでファイルの存在チェック
  Num = FreeFile
  Open pathName For Input As #Num
  If Err.Number = 0 Then
    NGfileName = 1 'ファイルが存在する
  End If
  Close #Num

  If NGfileName = 1 Then Exit Function
  Err.Clear

  'outputモードで不正ファイル名チェック
  Num = FreeFile
  Open pathName For Output As #Num
  If Err.Number <> 0 Then
    NGfileName = -1 'ファイル名が不正
  End If
  Close #Num

  If NGfileName = 0 Then Kill pathName
  Err.Clear

End Function
お礼コメント
38endoh

お礼率 72% (173/238)

この度は,ご回答ありがとうございました。

> 参考になれば幸いです。

参考どころか,このまま使えます。これで2.の問題も解決いたしました。本当にありがとうございます。これからも,どうかよろしくお願いいたします。
投稿日時 - 2001-12-08 00:29:02
-PR-
-PR-

その他の回答 (全3件)

  • 回答No.1
レベル7

ベストアンサー率 57% (8/14)

こんにちは。 まずは 1.ですが、フォームの ControlBox プロパティを使用すれば簡単に×ボタ ンを非表示にすることはできます。但し、他の最大化、最小化ボタンも消えてしま いますが... 2.ですがちょっとサンプルを作ってみました。 これは Asc関数で文字コードをチェックして英数字のみ値を戻します。 (ファイル名の場合は、"-"や"_" ...続きを読む
こんにちは。

まずは 1.ですが、フォームの ControlBox プロパティを使用すれば簡単に×ボタ
ンを非表示にすることはできます。但し、他の最大化、最小化ボタンも消えてしま
いますが...

2.ですがちょっとサンプルを作ってみました。
これは Asc関数で文字コードをチェックして英数字のみ値を戻します。
(ファイル名の場合は、"-"や"_"とかはOKだと思うので条件に入れ
てあります。ASCIIコードで 45,95)
その他に条件追加があればSelect Case文に条件を追加してあげれば
いいと思います。(詳しくはAsciiコード表を参照してみて下さい。)

Function is_chrchk(inchr As String) As String
' 英数字以外のチェック
' 英数字の場合値をそのまま返す
' それ以外の記号は値を返さない

Select Case Asc(inchr)
Case 45, 95
is_chrchk = inchr
Case 1 To 47 'BAD
is_chrchk = ""
Case 48 To 57 'GOOD
is_chrchk = inchr
Case 58 To 64 'BAD
is_chrchk = ""
Case 65 To 90 'GOOD
is_chrchk = inchr
Case 91 To 96 'BAD
is_chrchk = ""
Case 97 To 122 'GOOD
is_chrchk = inchr
Case 123 To 125 'BAD
is_chrchk = ""
Case Else 'BAD
is_chrchk = ""
End Select

End Function


Private Sub Command1_Click()
'Text1に入力した文字から英数字以外の文字を取り除き
'その結果をLabel1に転記する
Dim in_filenm As String, out_filenm As String
Dim temp As String

in_filenm = Text1.Text
out_filenm = ""

If Len(in_filenm) = 0 Then
MsgBox "入力がありません。", 48
Exit Sub
End If

For i = 1 To Len(in_filenm)
temp = is_chrchk(Mid(in_filenm, i, 1))
If Len(temp) > 0 Then
out_filenm = out_filenm & temp
End If
Next i

Label1.Caption = out_filenm

End Sub

ご希望どおりではなかったかも知れませんが、
参考になればと思います。
がんばってみて下さい。
お礼コメント
38endoh

お礼率 72% (173/238)

早速のご回答,大変ありがとうございました。ソースまで考えていただき,本当にありがとうございます。

条件分岐といえば,私は今まで,ほとんど If 文しか使ったことがありませんでしたが,Select Case って便利そうですね。範囲指定に To やカンマが使えるとは知りませんでした。勉強になりました。
投稿日時 - 2001-12-08 00:20:21
  • 回答No.2
レベル12

ベストアンサー率 65% (276/422)

質問内容の種類が全く別です。 質問はそれぞれ別スレッドにしましょう。 とりあえず1番の質問だけど、フォームのControlBox=Falseにするのじゃダメ? 押しても反応しない閉じるボタンなら、表示しなければいいような気がするけど ...続きを読む
質問内容の種類が全く別です。
質問はそれぞれ別スレッドにしましょう。

とりあえず1番の質問だけど、フォームのControlBox=Falseにするのじゃダメ?
押しても反応しない閉じるボタンなら、表示しなければいいような気がするけど
お礼コメント
38endoh

お礼率 72% (173/238)

ご回答ありがとうございます。いつもお世話になり,ありがとうございます。

> 質問内容の種類が全く別です。
> 質問はそれぞれ別スレッドにしましょう。

すみません。おっしゃるとおりです。これからは気を付けます。
これからもよろしくお願いします。
投稿日時 - 2001-12-08 00:21:44
  • 回答No.3
レベル13

ベストアンサー率 59% (729/1235)

1. Goo(gle)等でサンプルがすぐ見つかります。 検索キー = "VB 閉じる ボタン 無効" 2. Open for input を実行して、エラー番号で判断するとか ...続きを読む
1.
Goo(gle)等でサンプルがすぐ見つかります。
検索キー = "VB 閉じる ボタン 無効"

2.
Open for input を実行して、エラー番号で判断するとか
お礼コメント
38endoh

お礼率 72% (173/238)

ご回答ありがとうございます。検索エンジンで直に検索するなんて,考えても見ませんでした。それにしても,非常にたくさんヒットするんですね。驚きました。

http://homepage1.nifty.com/Wan/vbtips/vbt_contents.htm

1.については,こちらの URL にあるサンプルプログラムが大変役に立ち,1.については解決いたしました。

この度はありがとうございました。
投稿日時 - 2001-12-08 00:25:49
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ