コントロールが移動できないのです。
コントロールをクリックすると小さな四角で囲まれますがその四角が黒ではなく
白の四角の状態です。プロパティで設定できるものと思って探していますが、
今のところ分らない状態です。どなたか知っている方教えてください。
お願いいたします。

A 回答 (2件)

コントロールがロックされているから



参考URL:http://www.microsoft.com/JAPAN/developer/library …
    • good
    • 0

No.1さんも回答されていますが、コントロールにロックがかかっている為に移動できません。

ロックの解除の仕方ですが、確かプロパティではなくメニューのしかも、サブメニューの中に「ロック」という項目があったと思います。(「ツール」の中だったかなあ)開発環境がないので確認できなくて申し訳ないのですが。
もし分からなければ、ヘルプのカイル君「コントロールのロックを解除したい」と入力して聞いてみてはいかがでしょう?
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

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

Qユーザーコントロールのプロパティの値の保持

ユーザーコントロールを作成して、使用しているのですが、独自のプロパティを作成し、実際に配置した複数のコントロールで、各々値を設定しても、プロジェクトを一度閉じてしまうと、その他プロパティの値が保持されません。
何か基本的なことを見落としているような気がするのですが、行き詰ってしまいました。
解る方いらっしゃいましたら、アドバイスお願いいたします。

Aベストアンサー

PropertyBagを調べてみると幸せになれるかも。

QVB2010 のユーザコントロールのプロパティ

お世話になっております
Windows7、VB2010 Expless で開発しております
後にVS2010のVBに移行する予定です

ユーザコントロールでテキストボックスを作っております
そこで、初期値を設定しようと思い設定をしたのですが反映されません

Imports System.ComponentModel

<DefaultValue(True)>
Public Property Chk_Num() As Boolean
Set(ByVal value As Boolean)
If (value = True) Then
blnChk_Num = value
Else
blnChk_Num = value
End If
End Set
Get
Return blnChk_Num
End Get
End Property

<System.ComponentModel.DefaultValueAttribute(1)> Public Property Chk_ZenHankaku() As Integer
Set(ByVal value As Integer)
If (value >= 0 And value <= 2) Then
'0以上2以下
blnChk_ZenHankaku = value
Else
'マイナス、または3以上の場合は0にする
blnChk_ZenHankaku = 0
End If
End Set
Get
Return blnChk_ZenHankaku
End Get

End Property


どちらの方法でも、Booleanの場合は「False」、Integerの場合は「0」になってしまいます
また、初期化~プロパティ宣言間に、改行しても改行しなくても結果は同じです

どうにか設定できる方法はありますでしょうか
よろしくお願いします

お世話になっております
Windows7、VB2010 Expless で開発しております
後にVS2010のVBに移行する予定です

ユーザコントロールでテキストボックスを作っております
そこで、初期値を設定しようと思い設定をしたのですが反映されません

Imports System.ComponentModel

<DefaultValue(True)>
Public Property Chk_Num() As Boolean
Set(ByVal value As Boolean)
If (value = True) Then
blnChk_Num = value
Else
...続きを読む

Aベストアンサー

>デフォルト値というのは「作ったコントロールをフォームのデザイナで貼り付けて、何もプロパティを変更してない場合に入っている値」
>という解釈であっていますでしょうか

一般的にはそいういうことだと思いますが、DefaultValueAttribute クラスで指定されるのは別の意味のようです。

Private mChk_Num As Boolean = True

<DefaultValue(False)> _
Public Property Chk_Num() As Boolean
Get
Return mChk_Num
End Get
Set(ByVal value As Boolean)
mChk_Num = value
End Set
End Property

とした場合、フォームにコントロールを貼り付けたときの値( 初期値 ) は True です。
デザイン画面でプロパティを見たとき、プロパティの値≠規定値(False) の場合、プロパティの値がボールドになります。

プロパティの値を False ( 規定値と一致 ) にすると通常のフォントになります。

>デフォルト値というのは「作ったコントロールをフォームのデザイナで貼り付けて、何もプロパティを変更してない場合に入っている値」
>という解釈であっていますでしょうか

一般的にはそいういうことだと思いますが、DefaultValueAttribute クラスで指定されるのは別の意味のようです。

Private mChk_Num As Boolean = True

<DefaultValue(False)> _
Public Property Chk_Num() As Boolean
Get
Return mChk_Num
End Get
Set(ByVal value As Boolean)
...続きを読む

QVB .net コントロールのプロパティ設定方法

Visual Basic 2010を勉強しています。

フォームに貼り付けたコントロールのプロパティの設定についてですが、
今までは、貼り付けた後にプロパティウインドウで直接いじっていました。
(Text、Font、Imageなど...)

ですが、知人が書いたコードを見ていると、コードの中で設定しているようなのです。

プロパティウインドウで設定した方が、視覚的にも確認しながら設定できるのでそうしていたのですが、コード内で設定するのと違いはあるのでしょうか?(パフォーマンスやコードの見やすさなど...)

動的にコントロールを配置したい時や、プロパティを変更したい場合にはコード内で操作しますが、初期設定やラベル等の変更することがないようなコントロールに関しては、どちらでも同じような気がするのですが...

実際に皆さんがどうされているのかも気になり、質問させて頂きました。

以上、何卒よろしくお願いいたします。

Aベストアンサー

私は、デフォルト設定から変更する場合は、主にコードで設定しています。

ただ、デザイナで変更しても、InitializeComponent 内に自動でコードが
書かれます。そういった意味では、プロパティウインドウで設定しても
自分でコードを書かないだけで、コードで設定しているとも言えます。

ところが、この自動で書かれているコードには独自のルールがあるようで、
プロパティのデフォルト値と同じであると省略されたり、コードに書かれる
コントロールの順も不定な部分があります。また、開発環境の解像度などの
影響を受けて、プロパティ値が自動調整される事があります。

そういった諸々の事情から、企業で開発するプロジェクトでの保守性や、
別プロジェクトへの再利用性に劣ります。

自前のコードで書いてあると、そこが自動で変更される事は無い(実行時に
調整される事はあっても)ので、意図して値を変更した事が明確に履歴管理
でき、また、そのコードで1回十分にテストしておけば、そのまま安心して
他プロジェクトに流用できます。また、複数プロジェクトで、どのプロパティ
を流用して、どのプロパティは流用しなかったか(つまり、どの機能を実装し、
どの機能は実装しなかったか)といった差分比較も簡単になります。

少し特殊な事例としては、画面上に規則正しくコントロールが並んでいる時に
その位置や初期値を関数で設定した事があります。一度設定するだけなら
デザイナ上で設定しても手間は変わらないか、むしろ関数化するほうが時間が
掛かるかもしれませんが、何度も調整したり、変更が予想される場合は
少しの変更で調整できて便利でした。

以上のような経験から、
デザイナ上で調整するのは、位置と、タブ順・コントロール名くらいで、
他のプロパティは基本的には自前のコードで設定するようになりました。

私は、デフォルト設定から変更する場合は、主にコードで設定しています。

ただ、デザイナで変更しても、InitializeComponent 内に自動でコードが
書かれます。そういった意味では、プロパティウインドウで設定しても
自分でコードを書かないだけで、コードで設定しているとも言えます。

ところが、この自動で書かれているコードには独自のルールがあるようで、
プロパティのデフォルト値と同じであると省略されたり、コードに書かれる
コントロールの順も不定な部分があります。また、開発環境の解像度などの
影...続きを読む

QVer.6.0で動的コントロールのプロパティについて

フォーム上で、
動的コントロール=コンボボックスの宣言をし、
標準モジュールで、動的コントロールを実際に追加したいコードを作る時、サイズ(Left、Top、)や状態(Visible)などの設定はできるのですが、
Sorted(コンボボックス内での自動昇順)やStyle(コンボボックスの種類)等の、設定がソース上で出来ません。
どうすれば、ソース上で、設定できるのでしょうか。
問題のコードをデバッグすると、デザイン上でしか、設定出来ませんとメッセージが表示され、実現不可能な事を言われています。

Aベストアンサー

何度もすみません、もし良ければ下記コードを参考にして下さい。

(標準モジュール)
'*** コンボボックスを作成する関数 *******************************************
Public Declare Function CreateWindowEx Lib "user32" Alias "CreateWindowExA" _
(ByVal dwExStyle As Long, ByVal lpClassName As String, _
ByVal lpWindowName As String, ByVal dwStyle As Long, ByVal x As Long, _
ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, _
ByVal hWndParent As Long, ByVal hMenu As Long, ByVal hInstance As Long, _
lpParam As Any) As Long

'*** 作成したコンボボックスを破棄する関数 ***********************************
Public Declare Function DestroyWindow Lib "user32" (ByVal hwnd As Long) As Long

'*** コンボボックスの項目を追加する関数 *************************************
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, _
ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Public Const WS_CHILD = &H40000000 '子ウィンドウ
Public Const WS_VISIBLE = &H10000000 '表示する
Public Const CBS_DROPDOWN = &H2& 'Styleプロパティ(ドロップダウン)
Public Const CBS_SORT = &H100& 'Sortedプロパティ(並び替える)
Public Const CB_ADDSTRING = &H143 '項目追加
Public lngRet As Long '戻り値

Public Sub CreateComb()
Dim lngSendRet As Long '戻り値

'*** ComboBox1という名前で既存のフォームにStyle(ドロップダウンコンボ) ******
'*** Sorted(True)のコンボボックスを作成 ******
lngRet = CreateWindowEx(0, "ComboBox", "ComboBox1", _
WS_CHILD Or WS_VISIBLE Or CBS_DROPDOWN Or CBS_SORT, _
0, 0, 100, 100, Form1.hwnd, 0, 0, 0)

'*** 作成したコンボボックスの項目を追加 ************************************
lngSendRet = SendMessage(lngRet, CB_ADDSTRING, 0, ByVal "a")
lngSendRet = SendMessage(lngRet, CB_ADDSTRING, 0, ByVal "い")
lngSendRet = SendMessage(lngRet, CB_ADDSTRING, 0, ByVal "あ")

End Sub

Public Sub DestroyComb()
'*** 作成したコンボボックスを破棄 ******************************************
lngRet = DestroyWindow(lngRet)
End Sub

(フォーム)
Private Sub Form_Load()
Call CreateComb
End Sub

Private Sub Form_Unload(Cancel As Integer)
Call DestroyComb
End Sub

上記を実行されますとコンボボックスが作成され、
a


という項目が3行追加され並び替えも正しく行われました。
コンボボックスのStyle、Sortedプロパティはデザイン時にしか設定が
出来ないので、上記方法を記載しましたが他に良い方法があるかも知れません。

何度もすみません、もし良ければ下記コードを参考にして下さい。

(標準モジュール)
'*** コンボボックスを作成する関数 *******************************************
Public Declare Function CreateWindowEx Lib "user32" Alias "CreateWindowExA" _
(ByVal dwExStyle As Long, ByVal lpClassName As String, _
ByVal lpWindowName As String, ByVal dwStyle As Long, ByVal x As Long, _
ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, _
ByVal hWndParent As Long,...続きを読む

QVB6のユーザーコントロールの受け渡しでプロパティ

自作のユーザーコントロールをフォームに貼り付け、
それをクラスに渡してクラス内でそのコントロールのVisibleを制御しようとしておりますが、

フォームからコントロールのVisibleプロパティにアクセスできますが、
クラスからだと、
メソッドまたはデータメンバが見つかりません
とコンパイルエラーが出ます。

そこで、コントロールをControlやUserControlにキャストしてみましたが
型が一致しません
というエラーとなってしまいます。

コントロールにVisibleプロパティの追加を試みましたが、
ActiveXコントロールインタフェースウィザードの使用できる名前に於いて
それらのプロパティが列挙されません。

対象がユーザーコントロールでなく、ボタンなどの標準コントロールの場合は
できたのですが・・・

なにか方法をご存知でしたらご教授ください。

Aベストアンサー

Visibleプロパティを管理しているのがコンテナ側だからですよ
FormやPictureBoxはコンテナになりますのでフォームにはったUserControlの場合はVisibleプロパティが操作可能です

クラスに渡した UserControlですとこのコンテナが提供するExtenderプロパティを直接操作することが出来ないのではと思います


UserControlにVisibleを操作するプロパティを追加してみましょう

private bVisible as Boolean
Public Property Let MyVisible(value as Boolean)
  bVisible = value
  ' Extenderを通してVisibleを操作
  Extender.Visible = value
  PropertyChanged "MyVisible"
End Property

Public Property Get MyVisible() as Boolean
  MyVisible = bVisible
End Property

Private Sub UserControl_InitProperties()
  ' プロパティの初期化
  bVisible = Extender.Visible
End Sub

Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
  bVisible = PropBag.ReadProperty("MyVisible", Extender.Visible)
End Sub
Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
  PropBag.WriteProperty "MyVisible", bVisible, Extender.Visible
End Sub
といった具合のコードを追加しておきます

クラス側では
obj.MyVisible = True
または
obj.MyVisible = False
といった具合で操作してみましょう

Visibleプロパティを管理しているのがコンテナ側だからですよ
FormやPictureBoxはコンテナになりますのでフォームにはったUserControlの場合はVisibleプロパティが操作可能です

クラスに渡した UserControlですとこのコンテナが提供するExtenderプロパティを直接操作することが出来ないのではと思います


UserControlにVisibleを操作するプロパティを追加してみましょう

private bVisible as Boolean
Public Property Let MyVisible(value as Boolean)
  bVisible = value
  ' Extenderを通してVisibleを操...続きを読む


このQ&Aを見た人がよく見るQ&A

このカテゴリの人気Q&Aランキング

おすすめ情報