|
|
how would you enable that, im using visual studio 2005 beta 1, .net framework 2.0 beta 1. i have the following controls set...
autocompletecustomsource = collection, it goes in an editor...
autocompletemode = suggest...
autocompletesource = custom source...
where am i going wrong? it doesn't work with those settings.
IM PROUD TO BE A GMAIL;
|
|
|
|
|
Hi, I have a collection in a control i'm making (extends collectionbase), and in all the functions i embody the code in lock(List.SyncRoot){}. for ex:
<br />
public void Add(string text)<br />
{<br />
lock(List.SyncRoot)<br />
{<br />
List.Add(new SimpleListItem(text));<br />
<br />
OnItemsAdded(this, new System.EventArgs(), List.Count - 1);<br />
}<br />
}<br />
I plan to use the control asynch like when i add items to it, so is it necessary that i use the lock thing the way i described?
|
|
|
|
|
Windows forms, C#, Visual Studio .NET 2003.
In a MDI application, we have a MDI child form that starts out maximized [window "A"]. This mdi child form has the option to open a different "editing" window as a non-modal child [window "B"].
If I set the properties "B" to be a MDI child, it will start out maximized, which we don't want. If, however, I set the properties of "B" as simply a Child of "A", then it remains a child of the MDI application (good), it remains non-maximized (good) BUT: we can no longer edit text in the text box in a "normal" fashion.
The behavior is such that you can't take your cursor and highlight all of the text in the text box. You have to click in the text box, in which the cursor will force to the beginning, then you have to use your keyboard keys such as "End" and the backspace key to actually edit the text.
Have tried various combinations of MDI Child but fixed borders and no control boxes and such, but the issue keeps coming up that in order to get the editing normal, it seems as if I MUST keep the form "B" as a MDI Child and thus it either maximizes, which I don't want, or it un-maximizes form "A" which I don't want.
Any suggestions would be greatly appreciated.
================
Thank you
Sue
|
|
|
|
|
OK. This is all normal Windows functionality:
1) If one Child form of an MDI Parent is maximized, all the children are maximized. You can't mix it so one is maximized and other are not.
2) A Child Form cannot be both a child and a parent to another form. If you attempt to do this, the results are undefined and unpredictable, which you've already noticed.
The only solution you have to both problems at the same time is to make the second child form a seperate window, with no parent. This will make the child form just like any other window with no interaction with the MDI Parent. But, I suspect you don't want this either.
In that case, there is no solution to your problem. Your requirements will have to be modified to fit within the functional limitations of Windows.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Well, this has confirmed bits and pieces of information I've found, and behavior I've experienced in other programs - my own and Microsoft's.
I thank you for the explanation and it is starting to make sense. I anticipate that I will "not" be able to do exactly what I'm looking for, so I'll have to make decisions as to what is "best" for the user - not being able to edit with the mouse, or having a huge maximized screen with information only in the upper left-hand corner.
Thanks for the reply.
|
|
|
|
|
I must be misunderstanding your problem because I cant seem to see where the problem is.
Lets see if I got it straight:
1)You have a MDI application with a main MDIParent Form
2)U have a MDIChild form A maximized
3)In A u have a button or whatever that opens up a Form B through Show() or ShowDialog(this) (actually, the owner will always be the MdiParent, MdiChilds cannot own forms, but the Framework will do that for u).
If thats how it is then textboxes will work perfectly fine in Form B., U can select with mouse and whatever. Are u using normal TextBoxes or are u using your own derived classes?
|
|
|
|
|
See the 'Back' button on your IE browser, or the 'New' button in VS. They have this little arrow to the right of the text which if selected gives a drop down of related choices.
Is this an extended button? Or simply two buttons very close to each other?
Does anyone know where I can learn about how to make such a button.
Thank you.
-d
|
|
|
|
|
Well, in Visual Studio 2003, this is built in.
I believe these are the steps:
- Place a System.Windows.Forms.Toolbar on the top of your form.
- Now edit the properties, and choose the Buttons collection.
- Add a new button, and for the Style, choose Drop Down button.
- I think here you have to assign a Drop Down list into the property DropDownMenu.
Try that see if it works.
If you don't have VS 2003 maybe post what dev env you are using.
|
|
|
|
|
Yes, that is the button I'm looking for. I just don't want it in a tool bar.
I'll look at the code that is generated and see if I can adapt it for my needs.
Thank you
-d
VS 2003 is what I'm using
|
|
|
|
|
A user control with two buttons and a context menu should do it.
|
|
|
|
|
Hello
I am trying to Implement SendMessage Windows Method to capture Keystrokes for my IE toolbar project..
its working fine for BackSpace key in EditBox however when Wparam set to Keys.Left (for left arrow key),it prints "%" sign in EditBox..
it took an hour or two to understand why its printing %..when i checked the Ascii of % sign,it was same as Left Arrow Key..
how can I solve this Mystery?i am checking by using following code
if ( msg.wParam==(uint)Keys.Left)
<br />
if ( msg.wParam==(uint)Keys.Left)<br />
{<br />
SendMessage(txtSearch.Handle, WM_CHAR,127,0);
}<br />
127 is Ascii of % sign as well..same is happening with other keys too like Right ,up and down arrow Keys
waiting for response
-A
|
|
|
|
|
kadnan wrote:
it took an hour or two to understand why its printing %..when i checked the Ascii of % sign,it was same as Left Arrow Key..
how can I solve this Mystery?
What mystery? You found out what's causing it yourself!
kadnan wrote:
i am checking by using following code
Checking for what? What is the purpose of this code? What is it you want this code to do?
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Well..as i mentioned in my post,i want to send LEFT Arrow Keystroke,to move cursor on left "<-" Arrow Key,but when i press Left Arrow key,it prints % sign
-adnan
|
|
|
|
|
You didn't mention anything about sending keystrokes in your previous post. You said you wanted to CAPTURE keystrokes, which is completely different.
Now, your not actually sending keystrokes with the WM_CHAR message either. Your sending keycodes that are not translated yet, which is why the % sign keep coming up instead of moving the cursor like you expect. You should be sending WM_KEYDOWN and WM_KEYUP instead. This way, the message gets translated into a appropriate character or action, depending on the key sent.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Dear Dave
Thanks for reply,sorry for my Ignorance as I am not so much aware of this keystroke issue..this is wht I am doing now:
if( msg.message == 0x100 )
{
if ( msg.wParam==(uint)Keys.Left)
{
//
SendMessage(msg.hwnd, WM_CHAR, 256, msg.lParam); //256 is Dec Equivalent of LEFT KEY
}
}
I am using all this in TranslateIO() method..how else should it translate the keys?
Thanks
-adnan
|
|
|
|
|
You don't translate the keys! The application receiving the keystrokes does this itself when it gets the KEYDOWN messages. That target application/control calls TranslateMessage itself!
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
I have a MdiParent and Child. After the child is called using the .Show, the Parent continues to run code.
In VB6, I typically got around this by using do while, or do events. (Hate to admit it, but I just tried until something worked) I am wanting to set this up correctly, so can anyone point me in the right direction on how to hold the parent while the child does its thing.
-Thanks in Advance
|
|
|
|
|
Dwayner79 wrote:
have a MdiParent and Child. After the child is called using the .Show, the Parent continues to run code.
Uhhh... That's the way it's supposed to work!
Are you talking about running a form as a dialog instead of a form? In that case, use .ShowDialog() , not .Show() .
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
I understand the difference, I do not want to stop everything in the Parent, I want to pause the code...
Here is some more clarity...
If I comment out the call to the child form, the parent forms loads and sits there. This seems correct.
If I call the Child, and set a breakpoint, and F11 through the code, everything works fine. The child is called, and the code in the child loads fine.
If I Run the code without the breakpoint, the following error occures:
"An unhandled exception of type 'System.NullReferenceException' occurred in Unknown Module.
Additional information: Object reference not set to an instance of an object."
My thoughts on this is that the code is failing because the parent is leaving the function that called the child.
The question is should I showdialog and lose the ability to use the parent window functions, Should I do a do While type statement, or is there another way to handle this kind of situation?
Thanks for the advice.
Edit: You cannot run a showdialog on a child form. So there has to be something that can "pause" the Parent.
|
|
|
|
|
How about providing some code.
|
|
|
|
|
private void MainParent_Load(object sender, System.EventArgs e)
{
LoadNewConfig();
}
private void LoadNewConfig()
{
ControllerForm controllerForm = new ControllerForm();
controllerForm.MdiParent = this;
controllerForm.Show();
}
There is nothing to this code. The three lines in LoadNewConfig are the ones I remove and it works fine.
I Turned on the Exception Break into debugger option. (CTRL-ALT-E) and now I cac't get it to happen again.
grrrrrr
|
|
|
|
|
Does ur ControllerForm have any code yet?
If so, can u please post all ControllerForm code that gets called when instantiating?
If ur overriding any methods that might be getting called then please post them too.
|
|
|
|
|
no overrides... here is the code:
I included all the code from the Windows IDE generated.
public class ControllerForm : System.Windows.Forms.Form
{
private DevComponents.DotNetBar.DotNetBarManager dotNetBarManager1;
private DevComponents.DotNetBar.DockSite barLeftDockSite;
private DevComponents.DotNetBar.DockSite barRightDockSite;
private DevComponents.DotNetBar.DockSite barTopDockSite;
private DevComponents.DotNetBar.DockSite barBottomDockSite;
private System.ComponentModel.IContainer components;
string controllerName = "";
private System.Windows.Forms.OpenFileDialog openFile1;
string fileName = "";
public ControllerForm()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
//
// TODO: Add any constructor code after InitializeComponent call
//
}
public string ControllerName
{
get
{
return controllerName;
}
set
{
controllerName = value;
}
}
public string FileName
{
get
{
return fileName;
}
set
{
fileName = value;
}
}
///
/// Clean up any resources being used.
///
protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows Form Designer generated code
///
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
///
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.dotNetBarManager1 = new DevComponents.DotNetBar.DotNetBarManager(this.components);
this.barBottomDockSite = new DevComponents.DotNetBar.DockSite();
this.barLeftDockSite = new DevComponents.DotNetBar.DockSite();
this.barRightDockSite = new DevComponents.DotNetBar.DockSite();
this.barTopDockSite = new DevComponents.DotNetBar.DockSite();
this.openFile1 = new System.Windows.Forms.OpenFileDialog();
this.SuspendLayout();
//
// dotNetBarManager1
//
this.dotNetBarManager1.AutoDispatchShortcuts.Add(DevComponents.DotNetBar.eShortcut.F1);
this.dotNetBarManager1.AutoDispatchShortcuts.Add(DevComponents.DotNetBar.eShortcut.CtrlC);
this.dotNetBarManager1.AutoDispatchShortcuts.Add(DevComponents.DotNetBar.eShortcut.CtrlA);
this.dotNetBarManager1.AutoDispatchShortcuts.Add(DevComponents.DotNetBar.eShortcut.CtrlV);
this.dotNetBarManager1.AutoDispatchShortcuts.Add(DevComponents.DotNetBar.eShortcut.CtrlX);
this.dotNetBarManager1.AutoDispatchShortcuts.Add(DevComponents.DotNetBar.eShortcut.CtrlZ);
this.dotNetBarManager1.AutoDispatchShortcuts.Add(DevComponents.DotNetBar.eShortcut.Del);
this.dotNetBarManager1.AutoDispatchShortcuts.Add(DevComponents.DotNetBar.eShortcut.Ins);
this.dotNetBarManager1.BottomDockSite = this.barBottomDockSite;
this.dotNetBarManager1.DefinitionName = "ControllerForm.dotNetBarManager1.xml";
this.dotNetBarManager1.LeftDockSite = this.barLeftDockSite;
this.dotNetBarManager1.ParentForm = this;
this.dotNetBarManager1.RightDockSite = this.barRightDockSite;
this.dotNetBarManager1.Style = DevComponents.DotNetBar.eDotNetBarStyle.Office2003;
this.dotNetBarManager1.TopDockSite = this.barTopDockSite;
this.dotNetBarManager1.ContainerLoadControl += new System.EventHandler(this.ContainerLoadControl);
//
// barBottomDockSite
//
this.barBottomDockSite.AccessibleRole = System.Windows.Forms.AccessibleRole.Window;
this.barBottomDockSite.BackgroundImageAlpha = ((System.Byte)(255));
this.barBottomDockSite.Dock = System.Windows.Forms.DockStyle.Bottom;
this.barBottomDockSite.Location = new System.Drawing.Point(0, 466);
this.barBottomDockSite.Name = "barBottomDockSite";
this.barBottomDockSite.Size = new System.Drawing.Size(692, 0);
this.barBottomDockSite.TabIndex = 3;
this.barBottomDockSite.TabStop = false;
//
// barLeftDockSite
//
this.barLeftDockSite.AccessibleRole = System.Windows.Forms.AccessibleRole.Window;
this.barLeftDockSite.BackgroundImageAlpha = ((System.Byte)(255));
this.barLeftDockSite.Dock = System.Windows.Forms.DockStyle.Left;
this.barLeftDockSite.Location = new System.Drawing.Point(0, 0);
this.barLeftDockSite.Name = "barLeftDockSite";
this.barLeftDockSite.Size = new System.Drawing.Size(0, 466);
this.barLeftDockSite.TabIndex = 0;
this.barLeftDockSite.TabStop = false;
//
// barRightDockSite
//
this.barRightDockSite.AccessibleRole = System.Windows.Forms.AccessibleRole.Window;
this.barRightDockSite.BackgroundImageAlpha = ((System.Byte)(255));
this.barRightDockSite.Dock = System.Windows.Forms.DockStyle.Right;
this.barRightDockSite.Location = new System.Drawing.Point(590, 0);
this.barRightDockSite.Name = "barRightDockSite";
this.barRightDockSite.Size = new System.Drawing.Size(102, 466);
this.barRightDockSite.TabIndex = 1;
this.barRightDockSite.TabStop = false;
//
// barTopDockSite
//
this.barTopDockSite.AccessibleRole = System.Windows.Forms.AccessibleRole.Window;
this.barTopDockSite.BackgroundImageAlpha = ((System.Byte)(255));
this.barTopDockSite.Dock = System.Windows.Forms.DockStyle.Top;
this.barTopDockSite.Location = new System.Drawing.Point(0, 0);
this.barTopDockSite.Name = "barTopDockSite";
this.barTopDockSite.Size = new System.Drawing.Size(692, 0);
this.barTopDockSite.TabIndex = 2;
this.barTopDockSite.TabStop = false;
//
// ControllerForm
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(692, 466);
this.Controls.Add(this.barLeftDockSite);
this.Controls.Add(this.barRightDockSite);
this.Controls.Add(this.barTopDockSite);
this.Controls.Add(this.barBottomDockSite);
this.Name = "ControllerForm";
this.Text = "Controller";
this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
this.Load += new System.EventHandler(this.ControllerForm_Load);
this.ResumeLayout(false);
}
#endregion
private void ContainerLoadControl(object sender, System.EventArgs e)
{
// Always cast to the BaseItem first, since sender in this case could be ControlContainerItem or DockContainerItem
BaseItem item = sender as BaseItem;
if(item.Name=="Dock1")
{
DockContainerItem dockItem=item as DockContainerItem;
dockItem.Control=new ConfigStepsList();
// Assign optional "Customize" menu to the bar that contains this item
if(item.CanCustomize==true)
{
item.CanCustomize=false;
}
}
}
private void ControllerForm_Load(object sender, System.EventArgs e)
{
openFile();
}
private void openFile()
{
if(openFile1.ShowDialog()==DialogResult.OK)
{
string name = openFile1.FileName;
}
}
}
|
|
|
|
|
I've run ur code and it works perfectly under these conditions:
1) No devcomponents
Could be some fault in the assembly? Have u tried running the code commenting out all DevComponent references?
One thing i've noticed in your ContainerLoadControl event handler:
Ur safe casting "sender" into a "BaseItem" through "BaseItem item = sender as BaseItem;"
but then, on the next line, ur not taking into account that the cast might fail and "item" be a null reference. In that case "item.Name" will fail. Can ur error be in ur event handler? This error might be triggering while the form is performing native calls during loadup and thus the debugger cannot catch it properly. Try commenting it out and see what happens or try putting ur code after the safecast in this way and see what happens: if(item!=null) {//your code}
|
|
|
|
|