Child form's controls not displaying correctly - c#

I am using an MDI form in which I have given option tool strip menu item as a call to a new child form. On the child form I have some buttons and DataGridView. But when I click the child form option the buttons and DataGridView are not displaying correctly. Provided I have already set the isMdiContainer property to true of MDI form.
The scenario runs successfully when I simply show a form, but the problem occurs when I use the form as a child form. Here is the code which I wrote in a tool strip menu item click:
frm_bank_master myfrm = new frm_bank_master();
myfrm.MdiParent =this;
myfrm.Show();

Related

How to control parent form from modally called child form

Is it possible to control the parent form from a modal child form?
My only idea is to close the parent form and show child form via ChildForm.Show() and not ChildForm.ShowDialog(parentform), can I control parent form from modally displayed child form?
How to refresh a parent form automatically upon saving the update on the child form?
You can access the parent (Owner) form by using Owner property. If you show the dialog using:
childForm.ShowDialog(this);
(this will be the form from where you are showing the dialog)
then in the dialog:
this.Owner.BackColor=System.Drawing.Color.Coral;
This will change the background colour of the parent form immediately.
ParentForm is available in the context of MDIForm context.

Devexpress unload usercontrol after save form

i have a main form which is containing a menu.
when i click a menu button there is an usercontrol is loading panel control in main form:
splitContainerControl1.Panel2.Controls.Add(new Moduller.userControlStokListesi() {
Dock = DockStyle.Fill
});
And there is a form on UserControl. when a user fill that form and hit the save button i want to remove that user control form from panel control.
How can i do that?
So if I understand your question correct, you want to remove the instance of Moduller.userControlStokListesi from the Panel2 ?
There are several ways to achieve this. You can remove all controls from a panel this way:
splitContainerControl1.Panel2.Controls.Clear();
You can also remove specific items:
splitContainerControl1.Panel2.Controls.RemoveByKey("the key of your control");
Or if you want the user control removes itself from the panel, you can call this snippet within the user control instance:
SplitContainerControl splitPanel = (SplitContainerControl) this.Parent;
splitPanel.Panel2.Controls.Remove(this);

How to focus a control in a form which is added on a panel of its parent form by tabbing index

I'm working on winforms in c#. I have a form which loads other forms in its panel. Now my child forms have many textboxes.
I want to set focus on one of those textboxes by loading my children forms by setting tab index to zero.
But it isn't happening when i load my children forms. I have taken care of the tab stop properties & i also went through the tabbing order of the forms. But the problem is still there.
When i load children forms from startup it focuses zero indexed control. I guess my problem is that i am loading these forms in a panel of a parent form. Any solution to this problem?
The Windows Forms controls in the following list are not selectable. Controls derived from these controls are also not selectable.
Panel
GroupBox
PictureBox
ProgressBar
Splitter
Label
LinkLabel (when there is no link present in the control)
Focus is a low-level method intended primarily for custom control authors. Instead, application programmers should use the Select method or the ActiveControl property for child controls, or the Activate method for forms.
https://msdn.microsoft.com/en-us/library/system.windows.forms.control.focus.aspx
You can set focus to a control in a form which is added on a panel of its parent form by creating an instance of child form in the parent form and then setting focus to child form controls.
Make an instance of child form:
ChildForm formInstanceName = new ChildForm();
And then you can set the focus property for particular control as:
formInstanceName .controlname.Focus();
And before doing this make sure you add the child form to the respective panel.
Here is the snippet of the code I used:
Form1 childform1 = new Form1();//creating an instance of child form
private void btn_Click(object sender, EventArgs e)
{
Panel2.Controls.Clear();//To clear existing controls on panel
Panel2.Controls.Add(childform1); // To add child form controls on the panel.
childform1 .textbox1.Focus(); //To set focus to control of child form
}
I hope this helps you..

How to refresh a current form in C#?

I am creating a multiple form windows application using C#, I have two form one Parent form and a child form.
From parent form I called the child form to add a tree node in the parent form treeview. After entering the details in the child form and pressing "Add" button I want to close the child form and want to add the tree node in the treeview dynamically inside the parent form.
The value is passing perfect, I am using properties for the transfer. Rest by using this.Show() another parent form opens up. I have already tried Invalidate() and Refresh() but the treeview does not get updated.
Override child form constructor to accept parent form as parameter
ChiildForm chilForm=new ChildForm(parentFormObject);
Now you can call method of parent form that would make the required change on the page.
parentFormObject.RefreshSection();
but the treeview does not get updated
To refresh the treeview you need to rebind it to your datasource after adding the newly added item of child form.
Example:
List<SomeClass> items = new List<SomeClass>();
if(childForm.ShowDialog() == DialogResult.Ok)
{
items.Add(childForm.newlyAddedItem); //you have mentioned that values are passing perfect
//your code for rebinding to the treeview
}
If you want to refresh after clicking Add buttons,
just try to call the load_ function by sending the parameters.
example,
button_click(Object sender,Event_args e)
{
Form_Load(sender,e);
}

Menu Items that change the application's view

I've been all up and down this tutorial.
I can't for the life of me figure out how when my app loads to have 1 screen, then when a menu item is clicked to show another screen. I get the idea of having multiple forms, but is that the solution I need here?
From what I've read I understand new forms to be essentially new windows. If that's right, that doesn't sound like what I need.
My users start off with a blank window other than a menu (I'm gonna fill it in later), but I want for File -> Settings to load a settings form. Ideally not in a new window.
Its a MDI window. They are window containers of other windows.
You create a parent form, and then you change which child form is the active form on the menu item click events. This requires you make a parent MDI form, and a child MDI form for each of the different views you want of your document. The menu items then switch which child MDI form is the active one.

Categories