|
Is there a split container control that will allow the user the ability to resize the control during the applications runtime environment. And will allow for more than 2 split panels. As the SplitContainer control I can only see it allowing 2 containers. I need at least 3 or 4 containers to be resizable. Without having to next the containers inside each other.
|
|
|
|
|
AFAIK nesting SplitContainers is the normal approach.
The alternative could be a TableLayoutPanel, but then IMO you have to organize the resizing handles and everything yourself.
|
|
|
|
|
Thanks, That is what I figured .. As that was the only way I could get it to work and drop the margins to maximize used space.
Quick question though... On this control how to you fix 1 of the partitions sizes to a minimum size. Here is what I tried but it is not working.
if (scRPTFilter1.Panel2.Height != 275)
{
scRPTFilter1.Panel2.Height = 275;
}
if (scRPTFilter1.Panel2.Width != 557)
{
scRPTFilter1.Panel2.Width = 557;
}
I was thinking I needed to say something like
if (scRPTFilter1.Panel2.Height != 275)
{
scRPTFilter1.Panel2.Height = new size(275, scrptfilter1.panel2.width);
}
Just Not Sure since the height is separated here.
|
|
|
|
|
Hi,
1.
Control.Height and Control.Width are existing properties, you can get and set them.
Control.Size is also a property, you can get and set it, however setting it requires a new Size, it does not make sense to set either Control.Size.Height or Control.Size.Width, since that will change the H or W of the copied size, not the Control's actual Size.
2.
I haven't done such things with SplitContainer (I used it only once), it probably works just fine.
3.
If you want to enforce a minimum W or H, you should test for < and not for equality, otherwise you can't change it at all.
|
|
|
|
|
I just need to know how to enforce 1 panel's minimum size.
|
|
|
|
|
well, try if (pan.Width<minWidth) pan.Width=minWidth; and similar for height inside its Resize, SplitterMoving and/or SplitterMoved handler. And/or read up on those events.
|
|
|
|
|
Hi,
A colleague and I came across this same problem and made a control derived from TableLayoutPanel , implementing the MouseDown , MouseMove and MouseUp events. It works reasonably well, except for designer support - we have to add all the controls via code.
Dybs
The shout of progress is not "Eureka!" it's "Strange... that's not what i expected". - peterchen
|
|
|
|
|
Hi friends,
I need to fix a part of .cs code and recompile and publish a project into production, but when i build it, it shows below error: can anyone give me some suggestion? what might be the cause? do I need to check my development environment? many thanks...
------ Build started: Project: Z:\scor_ip\, Configuration: Debug .NET ------
Pre-compiling Web Site
Z:\scor_ip\Global.asax(1): Publication (web): Request for the permission of type 'System.Web.AspNetHostingPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.
Pre-compilation Complete
------ Skipped Publish: Project Z:\scor_ip\, Configuration: Debug .NET ------
========== Build: 0 succeeded or up-to-date, 1 failed, 0 skipped ==========
========== Publish: 0 succeeded, 0 failed, 1 skipped ==========
|
|
|
|
|
Suggestion 0: Next time give your question a more useful subject.
Suggestion 1: Questions like this are more likely to get better answers on the ASP .Net forum.
In answer to your question:
alexyxj wrote: Request for the permission of type 'System.Web.AspNetHostingPermission
This means exactly what it says: You don't have permission to host an ASP .Net website. This often means you are trying to run the website from an untrusted location.
The drive letter Z suggests you might be trying to run it off of a mapped network drive. These are usualy untrusted locations. Try copying the whole project to somewhere on your local hard drive and trying again.
|
|
|
|
|
|
Hello. Until now I always used conversion through Convert class. Example:
Int32 nInt = Convert.ToInt32("12345");
With that above I always used Try Catch to handle incorrect conversion. Lately I saw there can be achieved by using Int32.TryParse().
So which approach should be better, and what are good and cons of each method?
Thanks in Advance
|
|
|
|
|
Don't use Convert when other options exist. Convert's methods generally just call the other methods anyway -- like Parse.
TryParse is generally better than Parse when available.
|
|
|
|
|
Isn't that other way around? I think that Int32.TryParse uses Convert class and handles exception within
|
|
|
|
|
No, and I mispoke somewhat, both Convert.Toint32 ( string ) and Int32.Parse ( string ) call System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
System.FormatException: Input string was not in a correct format.
at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
at System.Convert.ToInt32(String value)
at Template.Template.Main(String[] args)
System.FormatException: Input string was not in a correct format.
at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
at System.Int32.Parse(String s)
at Template.Template.Main(String[] args)
I would expect Int32.TryParse to also call ParseInt32.
|
|
|
|
|
|
It seems I Prefer using Convert.ToInt32 instead Int32.TryParse
With try parse I need to convert initial value to String, while convert accept other types
|
|
|
|
|
Your original post specifically showed a string, what else are you trying to "convert"?
|
|
|
|
|
That was nearly an example. I meant overall usage
This time it was Decimal to Double
|
|
|
|
|
Saksida Bojan wrote: Decimal to Double
Why not just cast?
|
|
|
|
|
|
Saksida Bojan wrote: Haven't try to cast it
cast will remove decimal part if casting from double to int.
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow Never mind - my own stupidity is the source of every "problem" - Mixture
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You
|
|
|
|
|
Hi!
I am trying to set up a generic framework for applications following the Model Controller View pattern with a (main) GUI thread and a worker thread actually handling the data. I want this to reliable prevent the GUI from freezing and to enforce strict GUI/data/algorithm separation.
My idea is to have one single Worker thread in order to rid me off the problem of having to make all data accesses thread safe(?!), since there is just this one thread accessing the data.
So I would have the main thread containing the GUI and a Worker Thread for Model/Controller. The worker thread would start up when the application starts and close down when the application closes.
For the general setup I could think of a Producer/Consumer pattern with a worker thread that has a ThreadedQueue, that is the GUI thread can dispatch jobs to the Controller in the worker thread wich are then processed in the order they have been enqueued.
For simplicity the Controller can have a state machine (simplest busy/idle) that could actually prevent jobs being enqueued while it's too busy.
Now the practical problem I have is how to set up communication across the threads as needed in the MCV pattern? The main issue I see is that the View might request data from the model while the controller is actually changing this data.
Thus my idea was to have the View issue a job to the controller that requests the data and supplying a callback/delegate to be called from the Controller/Model. Since the callback is called from the Model/Controller thread it is positively thread safe if the callback is blocking and does not return before the data has actually been read by the View (using Invoke() within the GUI Form/Control functions).
Could this work, or did I oversee something obvious here ?
Does anyone know about some good ideas on this or a hint to some article where something similar is described?
modified 2-Aug-18 21:02pm.
|
|
|
|
|
Hi,
I'm still struggling with a good MVC approach myself, so I don't have the complete answer to your question, however this[^] might be useful to you.
|
|
|
|
|
I have a small project in c# and ms-access. I use query builder to manage my tables in ms-access.
The problem is, select query works great, update query works great, but delete doesn't work and there is no error message!
Please help.
================================
using (cn)
{
OleDbDataAdapter adapter = new OleDbDataAdapter();
string queryString = "SELECT [A],[B] FROM [C]";
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + _conStrName + ";User Id=admin;Password=;";
OleDbConnection connection = new OleDbConnection(cn.ConnectionString);
adapter.SelectCommand = new OleDbCommand(queryString, connection);
OleDbCommandBuilder builder = new OleDbCommandBuilder(adapter);
adapter.SelectCommand.CommandText = queryString;
adapter.DeleteCommand = builder.GetDeleteCommand();
adapter.Update(ds.Tables["resourcesToTasks"]);
return ds;
}
|
|
|
|
|
I have learned a lot doing this project with datagrid views. But I have one issue though minor to me is a major issue to the client. I have been working on this for over 2 weeks and can not find any examples to give me the output I am looking for.
Please Help any Ideas please:
What I need to be able to do is essentially print my database grid column header names vertically at a 90.0F angle. Not horizontally as the default.
I have learned how to do this to the grid itself so it prints correctly on the screen. Which is:
private void dgvReport_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
if (e.RowIndex == -1 && e.ColumnIndex >= 4)
{
e.PaintBackground(e.ClipBounds, true);
Rectangle rect =
this.dgvReport.GetColumnDisplayRectangle(e.ColumnIndex, true);
Size titleSize =
TextRenderer.MeasureText(e.Value.ToString(), e.CellStyle.Font);
if (this.dgvReport.ColumnHeadersHeight < titleSize.Width)
this.dgvReport.ColumnHeadersHeight = titleSize.Width;
e.Graphics.TranslateTransform(0, titleSize.Width);
e.Graphics.RotateTransform(-90.0F);
e.Graphics.DrawString(e.Value.ToString(), e.CellStyle.Font,
Brushes.Black, new PointF(rect.Y, rect.X));
e.Graphics.RotateTransform(90.0F);
e.Graphics.TranslateTransform(0, -titleSize.Width);
e.Handled = true;
}
}
But When I send the grid to the printer the columns are all horizontal not vertical. What can I do to print the columns vertical. Any examples anywhere?
|
|
|
|